このコードがコンパイルされて実行される理由について、私は少し混乱しています。
class A
{
private:
int* b;
public:
A() : b((int*)0xffffffff) {}
int* get_b() const {return this->b;}
};
int main()
{
A a;
int *b = a.get_b();
cout<<std::hex<<b<<endl;
return 0;
}
このコードを実行した場合の出力FFFFFFFF
も...私には予想外です。constメンバー関数にあるのでthis->b
戻るべきではありませんか?const int*
したがって、この行は、にキャストしようreturn
とするとコンパイラキャストエラーを生成するはずです。const int*
int*
明らかに、constメンバー関数が何を意味するかについての私の知識にはギャップがあります。誰かが私がそのギャップを埋めるのを手伝ってくれるなら、私は感謝します。