本文主要是介绍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++中含有虚函数的类是可以实例化的,含有纯虚函数的类只能被继承,不能被实例化。
这篇关于C++中类的虚函数和纯虚函数以及实例化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!