我如何在C ++中通过引用copy = operator来复制?

时间:2011-12-27 21:06:41

标签: c++ operators overloading

我知道这可能是毫无意义的问题,但我只是想知道可以使用=运算符来复制像这样的

int a, b=5;
a = b;
a = 4;
cout<<b<<endl;

换句话说,我要做的是让这段代码打印4而不是5。 感谢您的任何评论...

3 个答案:

答案 0 :(得分:5)

您无法执行此操作,因为您已将a声明为int

a引用(int&)或指针(int*)设为b

答案 1 :(得分:4)

自定义类可能使用一些不起眼的技巧,但总的来说它是不行的。运算符重载的最重要规则之一:不要改变运算符的含义。例如。不要交换+-的含义。当然,它可以完成,但它会混淆其他人,也可能是你自己,稍后阅读代码。

您尝试做的事情可以使用指针或引用在C ++中完成:

int b = 5;
int &a = b;
a = 4;
cout << b << endl; // prints 4

答案 2 :(得分:1)

不,你不能这样做。在不使用用户定义的类的情况下重载赋值。请参阅http://www.parashift.com/c++-faq-lite/intrinsic-types.html#faq-26.10