/*
* 抽象类示例
*/
#include <stdlib.h>
#include <iostream>
using namespace std;
/*
* AbstractClass是抽象类
*/
class AbstractClass {
public:
AbstractClass() {
}
virtual ~AbstractClass() {
}
// 纯虚函数
virtual void toString() = 0;
};
//子类继承自抽象类
class SubClass : public AbstractClass {
public:
SubClass() : AbstractClass() {
}
public:
~SubClass() {
}
public:
void toString() {
cout << "Sub::toString()\n";
}
};
int main(int argc, char** argv) {
SubClass s;
AbstractClass &c = s;
c.toString();
return (EXIT_SUCCESS);
}
分析:
AbstractClass 包含纯虚函数,所以是抽象类,子类继承抽象类时必须实现所有的纯虚函数,除非子类也是抽象类,否则编译报错。
责任编辑:小草