我知道这可能是毫无意义的问题,但我只是想知道可以使用=运算符来复制像这样的
int a, b=5;
a = b;
a = 4;
cout<<b<<endl;
换句话说,我要做的是让这段代码打印4而不是5。 感谢您的任何评论...
答案 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