基本型のラッパー クラスを作成しているので、型付けできるようになっています...ただし、問題が発生しました。うまくするには、これらの両方の方法が必要です。
Integer32(FastInteger32 value);
Boolean operator>(Integer32 value);
operator FastInteger32();
「FastInteger」と「Integer」の間で「>」演算子を使用する場合を除いて、コンパイラは 2 つの可能なルートを認識し、1 つを選択するだけでなく、失敗します。1つだけ選ぶように指示する方法はありますか?
コード全体:
typedef unsigned int FastInteger32;
class Integer32
{
public:
Integer32(FastInteger32 value);
Boolean operator>(Integer32 value);
operator FastInteger32();
private:
FastInteger32 value;
};
int main()
{
Integer32 a = 5;
FastInteger32 b = 5;
if (a < b) { } // Doesn't know what to do here, convert b to Integer32 and compare or convert a to FastInteger32 and compare
}
ところで、あなたたちはロックします、助けてくれてありがとう!