在c++中,如何重载操作符而不通过形参传递对象
in C++, How can I overload an operator without passing an object through the parameters?
例如,我希望下面的代码输出数字6,但是我见过的每个操作符重载的例子都在形参中包含一个"const"对象。
Class MyClass
{
private:
int num;
public:
//Setter
void setNum(int x) {num = x;}
//Getter
int getNum() {return x;}
//Overloading + Operator
MyClass operator + (int add)
{
}
};
int Main()
{
MyClass test;
test.setNum(2);
test = test + 4;
cout << test.getNum();
return 0;
}
下面是您想要的代码:
class MyClass
{
private:
int num;
public:
//Setter
void setNum(int x) {num = x;}
//Getter
int getNum() {return num;}
//Overloading + Operator
MyClass operator + (int add)
{
MyClass copy;
copy.num = num + add;
return copy;
}
};
int main()
{
MyClass test;
test.setNum(2);
test = test + 4;
std::cout << test.getNum();
return 0;
}
您的代码有许多编译器错误,这些错误也已被修复。例如,Class应该是Class, Main应该是Main。
相关文章:
- 使用mem_fun_ref if成员函数需要多个形参
- 通过类的模板形参特化成员模板结构
- 非类型引用形参/实参
- 哪个模板形参在boost::shared_ptr构造函数中使用一个原始指针
- 如何确保迭代器模板形参与模板类的模板形参具有相同的数据类型
- 如何在编译时通过模板形参默认值的名称/指针获取函数的类型
- c++:候选模板被忽略:模板形参显式指定的参数无效
- c++中作为形参的指针
- 哪种方法更适合为函数提供编译时间常数?函数实参与模板形参
- 包含void*结构的函数的Const正确性和形参
- 传递boost::函数,该函数接受一个模板实参作为默认为NULL的形参
- 将右值引用形参强制转换为右值引用
- 给引用形参赋值使对象无效
- 当实参是初始化列表而形参是引用时,重载解析
- const整型模板形参的条件
- c++形参是一个指向常量对象的指针,但不返回更新后的对象
- 在Bjarne的这个例子中,为什么可以将const限定对象传递给非const形参?
- 在c++中,如何重载操作符而不通过形参传递对象
- Const对象作为函数形参
- 不可压缩的指针类型将int传递给内核对象中void(*)(void)类型的形参