如果这个问题已经被问过,我很抱歉,但我找不到同样的问题。请将我重定向到相关问题。
#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 成员函数内的类的数据成员。
我有两个问题——
为什么它不抛出编译错误。
我正在打印两个变量的地址,并且正如预期的那样,它们都显示相同的地址,但实例的 sizeof() 仍然显示大小为 8 个字节。