You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中子类与父类定义同名同类型成员为何无错?将使用哪一个?

关于C++子类与父类同名成员的问题解答

1. 为何C++未报错?

这是因为C++支持**成员隐藏(Name Hiding)**特性:当子类定义了与父类同名的成员(成员变量或成员函数均可),属于合法语法行为,编译器不会报错。子类的同名成员会将父类的同名成员“隐藏”,而非触发命名冲突。

2. 执行Z.name = "Zombie";时访问的是哪个类的成员?

直接通过子类对象Z访问name时,会优先访问子类Instructor自身定义的name成员。

若要访问父类Student的name成员,需显式指定作用域:

Z.Student::name = "父类名字";
cout << Z.Student::name;

内容的提问来源于stack exchange,提问作者Zoran I

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 05:27:00