如果我有以下代码:
class Base { /* ... */};
class Derived : public Base { /* ... */ };
int main() {
Base b = Derived{};
}
然后代码显示切片问题。属于类Derived
但不属于类Base
的任何数据都将丢失。但是假设Derived
没有Base
中没有的任何数据成员或基类,因此没有数据会丢失。
此代码是否仍会出现未定义的行为或其他问题?
答案 0 :(得分:4)
通常说切片没有未定义的行为:它通常不会做你想做的事情。在这种情况下,我无法看到任何问题,虽然我也不明白为什么你需要一个没有向基地添加任何东西的子课。