2014-03-14 92 views
-2

任何人都可以用一個6歲的男孩可以理解的方式解釋這個說法嗎?在C++編程語言中綁定語言

將函數調用連接到函數體稱爲綁定。在程序運行之前完成時,它被稱爲早期綁定或靜態綁定或編譯時綁定。

我想知道早期和晚期的約束力。我無法得到上述說法。

+0

@ user2864740我不會公佈這個問題,如果我能夠理解烏爾鏈接... –

+0

@ user2864740什麼都沒有,PLZ以簡單的方式 –

回答

3

有兩種情況

void fun(); 

這是早期綁定,因爲編譯器知道的函數調用地址。

假設你有基類,它是虛擬的fun

virtual void fun(); 

你也需要在派生類中的樂趣,

class Base 
    { 
     public: 
     virtual void fun(){//some code}; 

    }; 

    class Der : public Base 
    { 
     public: 
     virtual void fun(){//some code}; 

    }; 

現在其樂趣將被稱爲是取決於你如何調用功能。

讓說,

int main() 
{ 
Base *b = new Base(); 
b->fun(); //base version will be called 

Ber *d = new Der(); 
b->fun(); //der version will be called 

return 0; 
} 
+0

啊解釋,我需要在上下文> _ <中更新我對術語「後期綁定」的概念。這意味着.NET中不同的東西(甚至在Java中有微妙的差別)。 – user2864740