切片,没有任何切片

时间:2014-11-22 02:16:31

标签: c++

如果我有以下代码:

class Base { /* ... */};
class Derived : public Base { /* ... */ };

 int main() {
    Base b = Derived{};
 }

然后代码显示切片问题。属于类Derived但不属于类Base的任何数据都将丢失。但是假设Derived没有Base中没有的任何数据成员或基类,因此没有数据会丢失。

此代码是否仍会出现未定义的行为或其他问题?

1 个答案:

答案 0 :(得分:4)

通常说切片没有未定义的行为:它通常不会做你想做的事情。在这种情况下,我无法看到任何问题,虽然我也不明白为什么你需要一个没有向基地添加任何东西的子课。