永发信息网

C++中,子类对基类的某一个方法进行了重写,

答案:2  悬赏:50  手机版
解决时间 2021-01-28 00:12
C++中,子类对基类的某一个方法进行了重写,请问:在子类对象中还有没有基类的那个方法?是不是被屏蔽起来,但是还是存在于子类对象的中?
最佳答案
子类中还有,不过被屏蔽了。得用DerivedClass.BaseClass::function();的形式来调用。
#include 

using namespace std;

class Base{
    public:
    void test(){
        cout << "Base" << endl;
    }
};

class Derived : public Base{
    public:
    void test(){
        cout << "Derived" << endl;
    }
};

int main(){
    Derived d;
    d.test();
    d.Base::test();
    return 0;
}

//Output
Derived
Base
全部回答

我想你之所以这样问是没有真正的理解虚函数的作用。

下面我们一起做个试验

写一个基类 pen 它有两个方法void wirte() 和virtual void draw()

再一个子类 pencil 重写基类的两个方法

class pen

{

void wirte()

{cout<<"pen wirte"<<endl;}

virtual void draw()

{cout<<"pen draw"<<endl;}

};

class pencil

{

void wirte()

{cout<<"pencil wirte"<<endl;}

virtual void draw()

{cout<<"pencil draw"<<endl;}

};

然后在main函数中我们把子类对象付给一个基类的指针 再调用这两个方法

pencil pencil;  pen* pen=&pencil;  pen->wirte();  pen->draw();

我们会发现非虚方法是调用基类的,而虚方法是调用子类的(当然实现编写时不会这样操作,这里只是方便你理解没有通过函数方式去写)

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
刚出社会 找的工作 2000一个月 没提成 不包吃
舒亮眼镜旗舰店地址好找么,我有些事要过去
品人的意思是什么啊?知道的请说下!
银川贺兰县为什么有那么多外来人?
精功眼镜怎么去啊,我要去那办事
上海到天津怎么走
我下了个文华随身行,没交易的界面啊?怎么办
信步闲游什么意思
马融帐的意思是什么啊?知道的请说下!
旬念什么,部首是什么,共有几画
下列店堂告示,哪一个没有违反《消费者权益保
嘉鱼县咸宁舒桥镇中心幼儿园地址是什么,有没
新视界眼镜地址有知道的么?有点事想过去
娜美的水泡能给友军加速吗
女生在工商局工作好不好
推荐资讯
韶鲜的意思是什么啊?知道的请说下!
口袋妖怪叶绿中 鬼斯合适带么?
知己网吧地址好找么,我有些事要过去
华新游艺动漫城地址好找么,我有些事要过去
两江盛景东门在什么地方啊,我要过去处理事情
漂亮很重要吗的韩语用中文怎么说
怎么判断是电脑坏了还是适配器坏了
看演唱会用什么相机
联德手机超市地址在哪,我要去那里办事
请问S60v5 SDK模拟器如何安装软件,如何申请
丽江千古情观赏语句
法库哪有拔罐减肥的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?