引用成员变量大小疑点
引用成员变量大小问题class A{public:char ichar& bA():b(i){i99}}这样写,b就是i的引用。如果两个变量
引用成员变量大小问题
class A
{
public:
char i;
char& b;
A():b(i)
{
i=99;
}
};
这样写,b就是i的引用。如果两个变量都是int,则
sizeof(A)的值是8,还可以理解。但为什么两个都是char的时候,sizeof(A)还是8呢?
相对的,试过了
struct B
{
char i;
};
没问题
[解决办法]引用总是占4字节
[解决办法]不对,引用类型按照int类型处理了,所以b占用4个字节,然后是结构体对齐,由于b大小是4,i大小是1,结构体对齐按照4字节对齐,所以A大小是两个int大小,即8..