Mar*_*cek 0 c++ operator-overloading
我在为我的CMatrix类中的const实例定义重载的operator +时遇到了麻烦.我有这个定义为 + operator尚未
CMatrix operator+(const CMatrix &matrix) const;
它适用于non-constCMatrix的实例.但我做不到这样的事情:
const CMatrix a;
const CMatrix b;
const CMatrix c;
a=b+c;
Run Code Online (Sandbox Code Playgroud)
我在尝试编译源代码时遇到此错误: error: passing ‘const CMatrix’ as ‘this’ argument of ‘CMatrix& CMatrix::operator=(const CMatrix&)’ discards qualifiers
任何人都可以告诉我,如何定义重载以便+ operator能够编译代码?
这与你没有任何关系operator+.这是因为您尝试分配a即使您将其声明为const.你显然无法分配给一个const对象,因为这会改变它的价值!
也许你想要这样做:
const CMatrix a = b + c;
Run Code Online (Sandbox Code Playgroud)
或者做a非const.
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |