所以我试图做一个简单地重载许多运算符的程序,但出于某种原因,每当我尝试重载赋值运算符时,我都会收到错误消息
错误:从'int'转换为非标量类型'Foo'请求
"scripts": {
"postinstall": "grunt build"
}
我也尝试过没有operator =语句而没有运算符int()const;声明,但我似乎无法将其编译。
答案 0 :(得分:2)
你把分配与初始化混为一谈。
Foo f = 1; //initialization
f = 2; //assignment
你需要创建一个接受int
的构造函数。
Foo(int i) : value(i) {}
//main
Foo f = 1; //uses constructor
由于它是单个参数构造函数(转换构造函数),如果您不希望int
可隐式转换为Foo
,则应该构造函数explicit
。< / p>