15

我没有带我的 Effective C++,这让我非常烦恼,以至于我不得不要求自己保持理智。给定

class Foo : public Bar{}

void MyFunc(Bar &_input);

如果我传入 a Foo,我是在纠结切片问题还是避免了它?

4

3 回答 3

15

没问题,因为您正在传递参考。您没有创建新对象,只是让 MyFunc 访问原始对象。

于 2010-05-12T19:37:42.200 回答
6

由于您正在传递引用 -,除非您稍后分配给Bar.

于 2010-05-12T19:38:46.313 回答
2

仅当您将对象强制转换为其父类时,切片才是一个问题。转换指针或引用时没有切片。

于 2010-05-12T19:38:41.483 回答