2024年2月22日发(作者:3d打印技术介绍)
c++中virtual的用法
第1 章C++中virtual的用法
1.1 概述
C++中的virtual用法是指在类声明中声明函数成员为虚函数,即在函数前加入关键字virtual,表示该函数为虚函数,可以使用多态特性。C++中的virtual用法大多都是在类继承时使用,以便利用多态特性。
1.2 虚函数
C++中的virtual关键字,表示该函数为虚函数,也就是说,该函数可以拥有多态特性,也就是子类可以实现覆盖父类中同名的虚函数,并在调用时,根据实际类型调用子类覆盖后的函数,以此实现多态特性。
1.3 virtual的用法
(1)virtual 用法示例
class A
{
public:
virtual void dosomething();
};
class B:public A
{
public:
- 1 -
void dosomething();
};
在上述示例中,A类中有一个dosomething函数声明为虚函数(virtual),B类是A类的子类,B类中也有一个同名的dosomething函数,该函数实际上会覆盖A类中的dosomething函数,也就是实现了多态特性,当A类的实例化对象调用函数dosomething时,会按照实际类型来调用B类中的dosomething函数。
(2)virtual 的注意事项
(2.1)纯虚函数
class A
{
public:
virtual void dosomething()=0;
};
纯虚函数(pure virtual function)是一种特殊的虚函数,它没有实现任何具体的功能,它只是声明,以表示它可以被其他子类实现,A类中的dosomething函数就是一个纯虚函数,它的意思是A类并没有实现dosomething函数,只是声明可以被子类实现,也就是说子类必须覆盖A类中的dosomething函数以实现多态特性。
(2.2)覆盖virtual的函数
class A
- 2 -
{
public:
virtual void dosomething();
};
class B:public A
{
public:
virtual void dosomething();
};
当B类继承自A类,并实现同名的virtual函数时,B类会覆盖A类中的dosomething函数,在调用B类的dosomething函数时,会去调用B类中的dosomething函数,而不是A类中的dosomething函数,从而实现多态特性。
1.4 结论
C++中的virtual用法是在类声明中标记函数为虚函数,可以使用多态特性,以便子类实现覆盖父类中同名的虚函数,而不是去调用父类中的虚函数,从而实现多态特性。
- 3 -
发布者:admin,转转请注明出处:http://www.yc00.com/num/1708606080a1577180.html
评论列表(0条)