この質問が既にされている場合は申し訳ありませんが、同じ質問が見つかりませんでした。関連する質問にリダイレクトしてください。
#include<iostream>
using namespace std;
class ABC
{
int a;
int &ref;
public:
ABC(int arg = 0):a(arg), ref(a){}
void mutate_func(int arg) const {
ref = arg;
}
void print_val() {
cout << endl << &a << "\t" << &ref;
cout << endl << a << "\t" << ref;
}
};
int main()
{
ABC abc_obj(5);
cout << sizeof(abc_obj);
abc_obj.print_val();
abc_obj.mutate_func(10);
abc_obj.print_val();
return 0;
}
同じクラスのみの一部である参照変数を使用して、const メンバー関数内のクラスのデータ メンバーを変更しようとしています。
2 つの質問があります -
コンパイルエラーがスローされない理由。
両方の変数のアドレスを出力していますが、予想どおり両方が同じアドレスを示していますが、インスタンスの sizeof() はサイズを 8 バイトとして表示しています。