【编程经验】【编程习惯】虚类无法被实例化
来源:互联网 发布:语音播报软件 编辑:程序博客网 时间:2024/06/06 20:30
VS编译报错
error C2259: 'ca' : cannot instantiate abstract classc:\users\administrator\documents\visual studio 2010\projects\test1\test1\main.cpp 处理
#include <stdio.h>#include <iostream>using namespace std;class ca{public:ca(){}virtual ~ca(){}virtual void func1() = 0;//父类,有虚函数,则无法被实例化(无法被new出一个对象来)};class ca_1:ca{public:ca_1(){}virtual ~ca_1(){}//virtual void func1() = 0;//不实现父类的虚函数,编译会报错!};class ca_2:ca{public:ca_2(){}virtual ~ca_2(){}virtual void func1() = 0;//写出来,但依然没写父类虚函数的实现,编译会报错!};class ca_3:ca{public:ca_3(){}virtual ~ca_3(){}void func1()//写出了父类的虚函数实现,编译通过!{}};int main(){//ca* ctest= new ca;//报错!//ca_1* ctest1 = new ca_1;//报错!//ca_2* ctest2 = new ca_2;//报错!//ca_3* ctest3 = new ca_3;//通过!return 1;}
含有虚函数的类是虚类,虚函数用关键字virtual声明。虚函数表明只有在程序使用到该函数时,才获得与调用对象对应的该函数的实现。
类要想被实例化,则类里面的虚函数都要写实现!!!
养成好习惯
1.写类的时候,立马就把public: 构造函数, 析构函数(写成虚的),继承关系, 以及纯虚函数声明好!
2.写子类的时候,若子类还有子类,则可以不实现虚函数。但是若再没有子类了,就一定要把所有的虚函数实现都写上。
0 0
- 【编程经验】【编程习惯】虚类无法被实例化
- Release运行失败实例看编程习惯
- 编程习惯
- 编程习惯
- 编程习惯
- 编程习惯
- 编程习惯
- 编程习惯
- 编程习惯
- 编程习惯
- 编程习惯
- 编程习惯
- 编程习惯
- 编程习惯
- 编程习惯
- 编程习惯
- 编程习惯
- 编程习惯
- POJ 3259 Wormholes (判断负环,SPFA或Bellman-Ford都可)
- 第一次发文
- jQuery中$.fn的用法示例介绍
- 伪数组
- JavaScript数据类型
- 【编程经验】【编程习惯】虚类无法被实例化
- 易语言 小米注册机
- String to Integer (atoi)
- JPanel 的getGraphics
- pl sql 工具insert into 中文 后, select为乱码
- 黑马程序员----Java基础基础之IO流
- 变量、JAVA基本类型 、 运算符和表达式的学习
- LightOJ 1422 Halloween Costumes 【区间DP】
- Linux初探之如何查看帮助文档自学命令