- 博客(2)
- 收藏
- 关注
原创 C++面试题汇总(下)
如图所示可知菱形继承就是一个派生类同时继承自两个基类,而这两个基类又共同继承自同一个基类。菱形继承会导致数据冗余和二义性数据冗余派生类 D 会间接包含两份基类 A 的成员(一份来自 B,一份来自 C),造成内存浪费。访问二义性当访问基类 A 的成员时,编译器无法确定应该访问从 B 继承的版本还是从 C 继承的版本,导致编译错误。而解决方法就是采用虚继承,C++ 引入虚继承机制,使得派生类在继承间接基类时,只保留一份间接基类的成员,从而解决菱形继承的问题。
2025-09-23 20:23:20
1004
原创 C++面试题汇总(上)
在 C++中,名称(name)可以是符号常量、变量、函数、结构、枚举、类和对象等等。工程越大,名称互相冲突的可能性越大。另外使用多个厂商的类库时,也可能导致名称冲突。为了避免在大规模程序的设计中和在程序员使用各种各样的 C++库时,这些标识符的命名冲突,标准C++引入关键字 namespace(命名空间/名字空间/名称空间),可以更好地控制标识符的作用域。避免在项目中名称冲突。引用是 c++对 c 的重要扩充。在 c/c++中指针的作用基本都是一样的,但是 c++增加了另外一种给函数传递地址的途径。
2025-08-21 20:17:38
623
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅