zz_xiao_cai
zz_xiao_cai
2017-10-25 08:43

对于类中有虚函数的时候,对象所占空间,字节对齐方式有变化么

  • c++
  • vs2012

最近的一个bug,让我发现对于类中的字节对齐还是有模糊地方,望大家指点
先上一段测试代码
class CPoint
{
private:
double x, y;
char a;
public:
CPoint(double i, double j)
{
x = i;
y = j;
}

virtual double area() const
{
    return 0;
}

};

在main 函数中这样调用:
CPoint point(1, 2);
cout << " point size is : " << sizeof(point) << endl;
在win10 64位 vs2012 下,我以为输出24,运行结果为 32,表示不解
把x 和 y的类型改为 int,其它都不变,我觉得输出为16,运行结果也为 16
请问,指向虚函数表的指针,在这个运行环境下,不应该是固定的4个字节么,为什么x,y为double类型时,对象的总长度会是32呢?

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

3条回答

为你推荐

换一换