回答編集履歴
1
fix
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
C++言語の`const`は**遷移的(transitive)でない**ためです。もう少し平易な表現だと「const性が参照やポインタを超えて伝搬しない」になります。
|
2
2
|
|
3
|
-
constメンバ関数内部では`this`ポインタが暗黙にconst修飾されます(`const Base*`型)が、このポインタを経由して得られる`rr`や`pp`の型にはconst性が**伝搬しない**ため、
|
3
|
+
constメンバ関数内部では`this`ポインタが暗黙にconst修飾されます(`const Base*`型)が、このポインタを経由して得られる`rr`や`pp`の型にはconst性が**伝搬しない**ため、参照先/ポイント先は非constな`int &`や`int * const`となります。ポインタ値`pp`はconst修飾されますが、さす先の値`*pp`は非constのままです。
|
4
4
|
|
5
5
|
```cpp
|
6
6
|
void Base::operator()(int v) const {
|