摘要: 若一个类不能定义对象而只能做基类派生新类,称该类为抽象类。 (1)若类的构造函数或析构函数的访问权限为protected,则此类为抽象类。因为只有在派生类中可调用基类的保护成员。(构造函数或析构函数为private的类没有实用价值。) (2)含有纯虚函数的类为抽象类。 阅读全文
posted @ 2013-01-13 21:09 helloweworld 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 为什么要有纯虚函数 在定义基类时,有时只需要抽象出虚函数的原型,而无法定义其实现,因为其实现依赖于它的派生类。这是,可以把基类中的虚函数定义为纯虚函数。 格式:virtual <return type> FuncName(<ArgList>) = 0; 说明: (1)定义纯虚函数时,其实现不能在类内定义,但可在类外或派生类中定义,通常在派生类中定义。 (2)虚函数名赋值为0,与函数体为空不同,在未实现该函数之前,不能调用它(函数体为空的函数可以被调用)。 (3)含有纯虚函数的类是抽象类,因为虚函数没有实现部分,不能产生对象。 (4)可以定义抽象类类型的指针(或引用),以 阅读全文
posted @ 2013-01-13 21:05 helloweworld 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 如果没有[],则对于一维数组只是释放第0个元素所占内存, 对于二维数组只是释放第0行内存。 阅读全文
posted @ 2013-01-13 20:32 helloweworld 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 没有使用虚析构函数可能会出现的问题:#include <iostream>#include <string>using namespace std;class A {public: A() { cout << "A constructor" << endl; } ~A() { cout << "A destructor" << endl; }};class B: public A { char *buf;public: B() { buf = new char[10]; cout & 阅读全文
posted @ 2013-01-13 20:02 helloweworld 阅读(300) 评论(0) 推荐(0) 编辑