class apple
{
public :
operator orange() const { cout << "operator"; }
} ;
class orange
{
public :
orange (apple &x){cout <<"constructor";}
};
void f(orange o)
{
cout <<"function can accept only oranges ";
}
int main()
{
apple a;
f(a);
}
出力: コンパイラエラーコンストラクタが呼び出されたときにされたときにオペレータ機能
なぜこのコードをg ++コンパイラでコンパイルエラーを与えるのでしょうか?関数fが呼び出されたときにオレンジのコンストラクタが呼び出されないのはなぜですか?
質問にエラーメッセージを追加してください。 –
演算子+、演算子 - 、演算子=およびその他多くの演算子を使用できますが、 "演算子オレンジ"は使用できません。 – Imp
@できることを確かめてください。 –