C++
kongzhp
这个作者很懒,什么都没留下…
展开
-
为什么C++不能有虚构造函数,却可以有虚析构函数
class B{ public : virtual void m1(); virtual void m2(); }; class D : public B{ virtual void m1(); } 有天参加某大公司笔试,遇到这个问题,回来重新翻看C++教材和网上找答案,才恍然大悟。答案如下: C++的动态绑定使用vtable(虚成员函数表)来实现。vtable支持运行原创 2012-04-30 20:02:21 · 973 阅读 · 0 评论 -
C++ 函数遮蔽
所谓函数遮蔽,即基类有个函数m,而子类也有个函数m,那么子类的函数m就“遮蔽“了基类的m,不管它们的函数签名是否相同。 class B{ public: void m(){...} }; class D: public B{ public: void m(int a){...} }; main(void){ D d1; d1.m(1); //OK d2.m()原创 2012-04-30 22:30:21 · 917 阅读 · 0 评论