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);
}
我正在阅读“thinking in c++”第 14 章——不会自动继承的函数。上面的代码片段是 Eckel 给出的一个例子。埃克尔说:
“由于所有这些关于重写处理对象创建的函数的规则,自动类型转换运算符是继承的,乍一看似乎有点奇怪。但也不是太不合理——如果 Game 中有足够的碎片来制作一个 Other 对象,这些片段仍然存在于从 Game 派生的任何东西中,并且类型转换运算符仍然有效(即使您实际上可能想要重新定义它)。”
我不明白 Eckel 想说什么。谁能更详细地解释一下?
谢谢