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++中含有虚函数的类是可以实例化的,含有纯虚函数的类只能被继承,不能被实例化。

发布了89 篇原创文章 · 获赞 92 · 访问量 31万+

猜你喜欢

转载自blog.csdn.net/tkwxty/article/details/103203334