我有一个重载 operator =(const char&)
的类_obj operator=(const char& in){
this->out = convert(in);
return *this;
}
使用' this-> out '属于班级 string
我能做到:
_obj tmp;
tmp = 'c';
程序编译并按预期运行。
但是当我这样做时:
_obj tmp = 'c';
我收到编译错误:
错误:从' char'转换到非标量类型' _obj'请求。
这两个陈述之间究竟有什么不同?
第一个语句使用第一行的构造函数 _obj :: _ obj()创建一个_obj类型的对象,并使用重载的 operator =(const char&)来分配 char 第二行。
第二个语句尝试直接将char转换为_obj的类型,但为什么会这样,当有 operator = 告诉该怎么做时。
如何形成类和运算符以允许在单行代码中创建和赋值?
提前致谢