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 によって提供された例です。そしてエッケルは言った:
「オブジェクトの作成を処理する関数の書き換えに関するこれらすべての規則のために、自動型変換演算子が継承されていることは最初は少し奇妙に思えるかもしれません。これらの部分はまだ Game から派生したものにあり、型変換演算子はまだ有効です (実際に再定義したい場合でも)。」
エッケルが何を言おうとしているのか理解できない。誰かがそれをもっと詳しく説明できますか?
ありがとう