初學c++動態聯編


先看一下什么是C++聯編?

我覺得通俗的講,用對象來訪問類的成員函數就是靜態聯編。

那什么是動態聯編:

 

一般是通過虛函數實現動態聯編。

看一個動態聯編的例子:

 

我比較懶,所以直接粘貼了MOOC視頻的圖片。

 

 

 看一個動態聯編的例子:

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 
 5 class Base
 6 {
 7     public:
 8         virtual void print()  //虛函數
 9         {
10             cout<<"Base..."<<endl;
11         }
12 };
13 
14 class Derive : public Base
15 {
16     public:
17         void print()           //雖然沒有標注virtual,但是因為和基類中的虛函數函數同名,所以默認虛函數
18         {
19             cout<<"Derive..."<<endl;
20         }
21 };
22 
23 void display(Base* p)   //復制兼容原則,基類類型的指針也可以指向派生類。
24 {
25     p->print();
26 }
27 
28 int main()
29 {
30     Base a;
31     Derive b;
32     display(&a);  //調用基類的print函數
33     display(&b);   //調用派生類的print函數
34     return 0;
35 }
36 
37 //動態聯編,可以定義基類的指針,指向派生類的時候可以調用其中的虛函數進行操作。

運行結果如下:

 

如有錯誤,歡迎批評指正哈。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM