2010-05-12 17 views
9

Ich habe mein effektives C++ nicht bei mir und dies nervt mich so sehr, dass ich um meine eigene geistige Gesundheit bitten muss. AngesichtsReferenzen und Objekt Slicing

class Foo : public Bar{} 

void MyFunc(Bar &_input); 

Wenn ich in einem Foo passieren, bin ich mit dem slicing Problem Verheddern oder habe ich es vermieden?

Antwort

11

Kein Problem, weil Sie eine Referenz übergeben. Sie erstellen kein neues Objekt und lassen MyFunc nur auf das ursprüngliche Objekt zugreifen.

+0

Danke. Das hat mich verrückt gemacht. – wheaties

2

Das Slicen ist nur ein Problem, wenn Sie ein Objekt in seine Elternklasse umwandeln. Beim Gilden von Zeigern oder Referenzen gibt es kein Slicing.

5

Da übergeben Sie die Referenz - keine, es sei denn, Sie später zu einer Instanz von Bar zuweisen.