私は次のプログラムを持っている:変換演算子と演算子>>
class INT {
public:
INT(int ii = 0) : i(ii) {}
operator int() { return i; }
private:
int i;
};
int main()
{
INT i;
cin >> i;
}
声明cin >> i
はコンパイルエラーになりますが、私はその理由を知らないのですか? INT
がINT::operator int()
を通じてint
に変換することができますので、私のオプションで
は、コンパイラは、その文のための機能cin.operator>>(int&)
を見つけることができます。
完全なコンパイル出力を投稿できますか?それがあなたのコード全体なら、 'cin'ではなく' std :: cin'でなければなりません。 – hmjd
あなたはINTとしてクラスを宣言しています。 – Invictus
実際にここで何をしたいですか? – Invictus