忽然發現C++的const也是件麻煩的東西
類 TGMP 已經實現了 運算符重載(加减乘除余 及 大小不等於)等
現在有一个方法
TGMP TGMP::abs(const TGMP& o) {
if (o>0) //這樣,牠就不能执行了,
}
TGMP.cpp|322|error: passing ‘const TGMP’ as ‘this’ argument of ‘bool TGMP::operator>=(long int)’ discards qualifiers|
估計又是因為這裏:
bool TGMP::operator > (const signed long int o) {
if (mpz_cmp_si(this->value, o)>0) { ///比較函數中有一個 this->value 的使用
return true;
} else {
return false;
}
}
而我习惯性地想在任何一個不需要被人改變的地方定義一個 “不可更改”的标记
究竟怎麽做才好???
或许,不需要 this-> 限定????我去掉它试试,也许要好许多
大家写過運算符重载的都怎麽写的?