自己怎样建设网站首页课程设计代做网站php
自己怎样建设网站首页,课程设计代做网站php,网站关键词可以修改吗,北京网站营销seo方案1、成员变量偏移值
#xff08;1#xff09;
成员变量偏移值#xff0c;就是指这个成员变量的地址离对象首地址偏移了多少字节#xff0c;这个偏移值在编译完成后是不变的。
class Base {
public:int b_i;int b_j;
};int main()
{Base base;printf( b_i的偏移值:%…1、成员变量偏移值
1
成员变量偏移值就是指这个成员变量的地址离对象首地址偏移了多少字节这个偏移值在编译完成后是不变的。
class Base {
public:int b_i;int b_j;
};int main()
{Base base;printf( b_i的偏移值:%d\n, Base::b_i);printf( b_j的偏移值:%d\n, Base::b_j);return 0;
}
根据前面所学的知识我们知道这个Base类的对象布局如下所示 变量b_i在对象的开头位置所以偏移值应该为0int类型的长度是4所以b_j的偏移值应该为4。
执行程序后输出结果如下 2
下面我们给Base类添加1个虚函数看这个时候b_i、b_j的偏移值是多少
class Base {
public:int b_i;int b_j;virtual void print(){}
};
这个时候Base类对象的开头位置会增加一个4字节的虚函数表指针b_i、b_j的位置会往下移动4个字节。这时b_i的偏移值应该是4b_j的偏移值
应该是8。 执行程序后输出结果如下 2、成员变量地址
类的静态变量是跟着类走的它的地址在编译后是不变的。
类的非静态变量是在类对象里的每次运行生成一个新对象它的地址就会发生变化。
我们可以用下面的代码做个验证
class Base {
public:int b_i;int b_j;static int b_s;
};
int Base::b_s 1;int main()
{Base base;printf( b_i的地址:%d\n, base.b_i);printf( b_j的地址:%d\n, base.b_j);printf( b_s的地址:%d\n, base.b_s);return 0;
}
运行发现变量b_i、b_j的地址每次都不一样但b_s的值都是相同的。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/85938.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!