c++中虚函数的理解

虚函数的作用,事实上就是实现了多态性,就是实现以共同的方法,但因个体差异而采用不同的策略。下面有代码实例来描述:
class A{

public:

void print(){ cout<<”This is A”<<endl;}

};

class B:public A{

public:

void print(){ cout<<”This is B”<<endl;}

};

int main(){   //为了在以后便于区分,我这段main()代码叫做main1

A a;

B b;

a.print();

b.print();

}

通过class A和class B的print()这个接口,这里是直接操作对象,输出的结果分别是This is A和This is B。当操作指向类的指针时,就面临多态性的选择问题,如下例,最后的执行结果是一样的,都是This is A。

int main(){   //main2

A a;

B b;

A* p1=&a;

A* p2=&b;

p1->print();

p2->print();

}
如下当在基类中使用虚函数描述符时,再去操作指向类的指针时,结果就是分别是This is A和This is B了。
class A{

public:

virtual void print(){ cout<<”This is A”<<endl;}  

};

class B:public A{

public:

void print(){ cout<<”This is B”<<endl;}  //这里需要在前面加上关键字virtual吗?

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值