课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
深圳达内告诉你C++引入访问控制修饰符 ,深圳IT培训(sz.tedu.cn)专家就针对C++引入访问控制修饰符这一问题做一个详细的分解。希望能在工作中对你有所帮助!
如果有些数据成员变成私有成员,会对内存大小和布局有影响吗?我们可以看一下下面的示例代码,将 A 中的 c 改成私有的。
Listing 3 - add access specifiers
1 class A { 2 public: 3 int a = 0x12345678; 4 char b = 'b'; 5 private: 6 float c = 12.5; 7 }; 8 9 int main() {10 A t;1112 printf("sizeof(t) = %ld\n", sizeof(t));13 printf("&t = %p\n", &t);14 printf("&t.a = %p\n", &t.a);15 printf("&t.b = %p\n", &t.b);16 printf("%f\n", *((float*)((char*)&t + sizeof(t) - 4)));17 HexDump(&t);1819 return 0;20 }// output as below:// sizeof(t) = 12// &t = 0x7ffdfd38f460// &t.a = 0x7ffdfd38f460// &t.b = 0x7ffdfd38f464// 12.500000// 0x7ffdfd38f460: 0x78 0x56 0x34 0x12 0x62 0x00 0x00 0x00 // 0x7ffdfd38f468: 0x00 0x00 0x48 0x41
从输出结果,我们可以看到,类的大小和内存布局没有任何变化,所以改变数据成员的访问修饰并不会对内存布局有任何影响,Line16 专门打印了 c 的值。
想知道更多关于IT行业的信息吗?想远远不如行动,行动起来,一起加入达内,一起进入IT行业,跟着达内的脚步,一起走进如今的互联网信息时代,带给你不一样的色彩生活——【深圳IT培训】