中易网

C++中子类继承父类,为何可以在子类和父类中命名相同名字的函数?

答案:3  悬赏:40  
解决时间 2021-01-24 20:08
C++中子类继承父类,为何可以在子类和父类中命名相同名字的函数?
最佳答案
你运行一下下面的代码,就明白了。

class C
{
public:
void Test()
{
printf( "C.Test()\n" );
}
};

class B : public C
{
public:
void Test()
{
printf( "B.Test()\n" );
}
};

class A : public B
{
public:
void Test()
{
printf( "A.Test()\n" );
}
void BTest()
{
B::Test();
}
void CTest()
{
C::Test();
}
};

void main()
{

A * a = new A();
a->Test();
( ( B * ) a )->Test();
( ( C * ) a )->Test();
a->BTest();
a->CTest();
delete a;
}

PS:
如果是虚函数,而且派生类的函数签名与基类的签名一致,那么,基类的该同名函数指针已经被覆盖了,所以,就不可能再调用到基类的同签名函数了。非虚函数才可以使用上面的方面来调用。
全部回答
这种行为被称为overwrite
这就是c++的多态了。。
虚函数应用,可以区分。
如果子类要调用父类的函数,可以不再声明该函数,前提 是基类不要是纯虚的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
额头出现白斑的原因
西安市到哪里做早孕检查
描写麦子的片段
长庆宾馆(固原西吉县)怎么去啊,我要去那办事
汉川市今年入伍定兵人员各地名单
靓剪美发工作室在什么地方啊,我要过去处理事
停经几天才能用早孕试纸测出是否怀孕啊?
为什么数字频率计的仿真结果误差比实际测量的
求有关于岭南的传说故事 200字左右急!!!
ui设计和vi设计的区别?
用电话卡打国际长途的请进来,最便宜的方法是
请问 不按事先签好合同的要求 后面提新条件
简历上的硬件环境怎么写
重庆南桥市永辉超市总部城那儿要开一家、永辉
这题怎么做 最好有详细步骤
推荐资讯
像《查莉的成长日记》这样温馨的家庭情景美剧
激光除颈部线纹要多少钱
大地美发地址好找么,我有些事要过去
现在最广泛,最常用的镶牙方式是哪种?
额头上长了很小的疙瘩,成片的,没有特别的颜
旺福客栈地址在什么地方,想过去办事
财神街八号酒店地址在什么地方,想过去办事
亮堂堂眼镜(油城六路店)地址在什么地方,我要
祁县巴王川都大酒店地址在哪,我要去那里办事
“接见”与“会见”、“接待”与“款待”的差
led路灯有哪些超级节能的?led路灯可用于哪里
雍正处理了哪些兄弟
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?