聚合继承和切片

问题描述 投票:0回答:1

我正在阅读一些有关 C++17 的材料,我有一个关于聚合之间继承的问题。

如果一个聚合继承了另一个聚合,这不是一个问题吗?没有切片和内存泄漏的风险吗?我认为既然有继承,就应该有虚析构函数。

c++ inheritance c++17 aggregate
1个回答
0
投票

如果一个聚合继承自另一个聚合,这不是一个问题吗?

不,本身不是。这完全取决于你如何使用它。

没有切片风险吗

我不认为这是一种风险。您可以将从派生类创建的对象传递给接受基类引用的函数,然后它可以对基类成员进行操作。

和内存泄漏?

派生类的对象在超出范围时会销毁其成员,所以事实并非如此。

我想既然有as继承,就应该有虚析构函数。

仅当您的目标是通过基类指针销毁派生类的对象时,您才真正需要

virtual
析构函数。

© www.soinside.com 2019 - 2024. All rights reserved.