1
4
对。 这完全是另一回事,你没有看到任何重大损失,在你张贴的代码。您用来比较对象的度量表明,似乎没有任何东西因为对象切片而丢失。但是,如果您查看调试器中的对象,您很可能会注意到对象的类型不同。对象切片的效果在该环境中变得非常明显。 我建议不要仅仅为了构造基类的对象而创建派生类。使用一个或多个非成员函数更合适。
|
2
2
将继承用于您似乎正在使用它的任务不是一个好主意。请注意,在c++20中,可以使用指定的初始值设定项解决所显示的问题:
|
3
0
拥有派生类的主要原因是拥有虚函数。在代码中,一旦对象被切片,虚拟函数将开始调用基类版本:
输出:
所以,切片仍然是非常不受欢迎的。 |
notamaster · 匿名命名空间中的变量声明和其他位置的定义 2 年前 |
sovesti · 参数较少的模板函数中的演绎 2 年前 |
Lingxi · 使用内联静态数据成员有任何潜在的陷阱吗? 6 年前 |
Quuxplusone · 销毁不可销毁的基类? 6 年前 |