2014-03-14 164 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