随笔分类 -  虚函数

摘要:#include <iostream>using namespace std;class Class{public:virtual void fun(){cout << "Class::fun" << endl;}};int main(){Class objClass;cout << "Size of Class = " << sizeof(objClass) << endl;return 0;}Size of Class = 4#include <iostream>us 阅读全文
posted @ 2012-07-19 20:19 byfei 阅读(457) 评论(0) 推荐(0) 编辑
摘要:#include <iostream>using namespace std;class Base{public:Base(){cout << "In Base" << endl;cout << "This Pointer = " << (int*) this << endl;cout << endl;}virtual void f(){cout << "Base::f" << endl;}};class Drive: publ 阅读全文
posted @ 2012-07-19 19:05 byfei 阅读(110) 评论(0) 推荐(0) 编辑
摘要:#include <iostream>using namespace std;class Base{public:virtual void fun(){cout << "Base::fun" << endl;}void show(){fun();}};class Drive: public Base{public:virtual void fun(){cout << "Drive::fun" << endl;}};int main(){Drive d;d.show();d.fun();retur 阅读全文
posted @ 2012-07-19 17:52 byfei 阅读(115) 评论(0) 推荐(0) 编辑
摘要:在某些类里声明纯虚析构函数很方便。纯虚函数将产生抽象类——不能实例化的类(即不能创建此类型的对象)。有些时候,你想使一个类成为抽象类,但刚好又没有任何纯虚函数。怎么办?因为抽象类是准备被用做基类的,基类必须要有一个虚析构函数,纯虚函数会产生抽象类,所以方法很简单:在想要成为抽象类的类里声明一个纯虚析构函数。 这里是一个例子: class awov { public: virtual ~awov() = 0; // 声明一个纯虚析构函数 }; 这个类有一个纯虚函数,所以它是抽象的,而且它有一个虚析构函数,所以不会产生析构函数问题。但这里还有一件事:必须提供纯虚析构函数的定义: ... 阅读全文
posted @ 2012-06-28 20:14 byfei 阅读(562) 评论(0) 推荐(0) 编辑
摘要:构造函数不能是虚的。只能有虚的析构函数 阅读全文
posted @ 2012-06-28 20:08 byfei 阅读(457) 评论(0) 推荐(0) 编辑