C++中类的虚函数和纯虚函数以及实例化 |
您所在的位置:网站首页 › 纯虚函数的声明格式怎么写好呢 › C++中类的虚函数和纯虚函数以及实例化 |
C++中类的虚函数和纯虚函数以及实例化
让我们来继续学习C++的一些基本语法知识,今天我们要讲解的是C++中虚函数和纯虚函数。这个也可以说是C++的精华了,因为C++的实现多态就是靠的这个。 (1).含有虚函数的类是可以被实例化的,下面来直接上代码和运行结果: class VirtualClass{ public: virtual void fun1() { printf("VirtualClass\n"); }; virtual ~VirtualClass(); }; int main(){ VirtualClass * virtualClass = new VirtualClass(); virtualClass->fun1(); return 0; } //打印结果如下: A920:/system/bin # ./VirtualClass This VirtualClass fun1 A920:/system/bin #(2).含有纯虚函数的类是不可以被实例化的,必须被继承,才能够被实例化,下面直接上演示代码来说明: class VirtualClass{ public: virtual void fun1() = 0;//纯虚函数 virtual ~VirtualClass(); }; class ClassA : public VirtualClass{ public: void fun1(){ printf("The is ClassA fun1\n"); }; virtual ~ClassA(); }; VirtualClass:: ~VirtualClass(){ } ClassA:: ~ClassA(){ } int main(){ //编译报错,这个非法的 VirtualClass * virtualClass = new VirtualClass();//error: cannot allocate an object of abstract type 'VirtualClass' VirtualClass * classA = new ClassA(); classA->fun1(); return 0; }最后总结一把,C++中含有虚函数的类是可以实例化的,含有纯虚函数的类只能被继承,不能被实例化。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |