假設你有以下對象層次結構:C++爲什麼不是第二個表達式有效?
class Vehicle {
public:
virtual ~Vehicle() {}
};
class LandCraft: public Vehicle {};
class Truck: public LandCraft {};
現在,我們有兩個表達式:
Truck truck;
Vehicle& vehicle = truck;
根據解決一門功課,第二個表達式是無效的。但爲什麼?我的編譯器根本沒有抱怨,而且我也沒有看到這裏應該出現什麼問題。
哪個編譯器?你是否嘗試過「pedantic」標誌(或同等標誌)? – suszterpatt 2011-02-28 16:12:19
對我來說似乎也是正確的,因爲通過使用對「Vehicle」的引用避免了「切片」問題(http://stackoverflow.com/questions/2822146/references-and-the-slicing-problem)。 – James 2011-02-28 16:13:27
看起來不錯。這個問題是否真的使用'車輛&'?如果它只是使用'車輛',那麼你會有切片問題。 – 2011-02-28 16:13:41