1
class Game {
class Other {}; // Nested class
// Automatic type conversion:
operator Other() const {
cout << "Game::operator Other()\n";
return Other();
}
};
class Chess : public Game {};
void f(Game::Other) {}
int main()
{
Chess d;
f(d);
}
我正在閱讀「在C++中思考」第14章 - 不自動繼承的函數。 上面的代碼片段是Eckel給出的一個例子。和埃克爾說:什麼意思是轉換運算符在派生類中「仍然有效」
因爲所有這些關於重寫該處理 對象創建函數規則的」,它可能看起來有些奇怪起初,該 自動類型轉換操作符是繼承的,但它不是太 unreasonable-。如果在Game中有足夠的棋子來製作其他棋子,那麼這些棋子仍然存在於任何來自Game和 的類型轉換運算符仍然有效(儘管您可能在 事實上想重新定義它)。「
我不明白埃克爾想說什麼。任何人都可以解釋它更詳細?
感謝