C++赋值兼容问题,简单的说一下,赋值兼容何时调用基类的成员函数,什么情况下才会调用派生类的成员函数
答案:1 悬赏:20
解决时间 2021-02-18 14:31
- 提问者网友:敏感魔鬼
- 2021-02-18 02:35
C++赋值兼容问题,简单的说一下,赋值兼容何时调用基类的成员函数,什么情况下才会调用派生类的成员函数
最佳答案
- 二级知识专家网友:湫止没有不同
- 2021-02-18 04:12
对基类调用非虚函数时总是调用基类的成员函数。
对基类调用虚函数时:
1.对基类对象进行赋值时,调用的是基类的成员函数。
2.对基类的对象引用和基类的对象指针进行赋值时,调用的是子类的成员函数。
class A
{
public:
virtual void foo() {}
};
class B : public A
{
public:
virtual void foo() {}
};
B b;
A a = b;
a.foo(); //调用A类的foo函数
A& a = b;
a.foo(); //调用B类的foo函数
A* a = b;
a->foo(); // //调用B类的foo函数
对基类调用虚函数时:
1.对基类对象进行赋值时,调用的是基类的成员函数。
2.对基类的对象引用和基类的对象指针进行赋值时,调用的是子类的成员函数。
class A
{
public:
virtual void foo() {}
};
class B : public A
{
public:
virtual void foo() {}
};
B b;
A a = b;
a.foo(); //调用A类的foo函数
A& a = b;
a.foo(); //调用B类的foo函数
A* a = b;
a->foo(); // //调用B类的foo函数
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯