我正在尝试创建一个可以与之互动的结构,就好像它是一个int
。然而,当我尝试将值分配给它,它在编译引发以下错误:自定义结构与交互,就好像它是一个int?
Invalid conversion from `int` to `int32*`
为什么它抛出一个错误,即使我做了它的=
操作处理设置的int32
为const int
值?
下面是我的最好的尝试的源代码在int32
:
struct int32
{
int32_t val;
int32(int val=0)
: val(val)
{
}
int32& operator=(const int value) // ex. int32 *i = 42;
{
val=value;
return *this;
}
int32 operator+(const int32& value) const
{
return int32(value.val+val);
}
int32 operator-(const int32& value) const
{
return int32(value.val-val);
}
int32 operator*(const int32& value) const
{
return int32(value.val*val);
}
int32 operator/(const int32& value) const
{
return int32(value.val/val);
}
int32 operator%(const int32& value) const
{
return int32(value.val%val);
}
bool operator==(const int32& value) const
{
return (val == value.val);
}
bool operator!=(const int32& value) const
{
return (val != value.val);
}
}
而且,请不要随便推荐我使用int32_t
;我在做我自己struct
是有原因的(否则我刚刚使用int32_t
开始与;)
避免指针。 'int32 *'是麻烦的根源(这里没有显示) –
你使用int32 *'而不是'int32'的任何原因? – templatetypedef
您需要发布导致错误的代码。 – Galik