2
以下C++代碼是否正確?在C++中訪問具有不正確downcast的基類成員
struct Base { int x; };
struct Derived : Base { int y; }
Base * b = new Base;
Derived * d = static_cast<Derived *>(b);
//below we access only d->x, but not d->y
std::cout << d->x;
如果不是,究竟是什麼錯誤? C++標準對此有何評論?至少我沒有見過它墜毀。
'x'和'y'在這裏是私人的。 –
'Base b = new Base;'給你一個'Base'。你不能神奇地從中得到一個「派生」。 – NathanOliver
僅僅因爲這個簡單的例子的作品並不意味着你可以依靠它爲其他案件工作。 –