C++中的一处代码疑惑

[复制链接]
查看11 | 回复3 | 2012-10-18 17:36:58 | 显示全部楼层 |阅读模式
DEFINE_OBJ(B)展开就是A *GetObj(){ coutprint时,它会寻找a这个指针指向的对象对应的虚函数表中的这个函数,实际上就执行了B的print函数,这也是我们所说的“运行时动态调用” 如果print是一个普通的成员函数,那么编译器在编译时就会根据类名和参数名为这个函数准备一个全局的函数名称...
回复

使用道具 举报

千问 | 2012-10-18 17:36:58 | 显示全部楼层
A* a=new B(); //宏展开的a->print();
//虚函数调用......//应该delete a;...
回复

使用道具 举报

千问 | 2012-10-18 17:36:58 | 显示全部楼层
你别告诉我你 学c++ 不知道多态...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行