搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 这道题结果为什么是8?
标题:
这道题结果为什么是8?
只看楼主
xzy199999
等 级:
业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
结帖率:
92.45%
楼主
已结贴
√
问题点数:20 回复次数:10
这道题结果为什么是8?
#include <iostream>
#include <cstring>
using namespace std;
class A
{
private:
int num;
public:
A(){}
A(int num){this->num=num;}
virtual ~A(){}
};
int main()
{
A a;
cout<<sizeof(a)<<endl;
return 0;
}
搜索更多相关主题的帖子:
private
include
public
2011-07-08 17:52
ToBeStronger
等 级:
业余侠客
帖 子:61
专家分:239
注 册:2011-4-8
第
2
楼
得分:20
虚函数大小是4,再加上一个int变量大小为4
2011-07-08 18:23
xzy199999
等 级:
业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
第
3
楼
得分:0
只要是虚函数,就一定是4字节吗
我是初学者
2011-07-08 20:23
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
4
楼
得分:0
sizeof 的结果大多都和编译器有关。一般不用在意。
2011-07-08 23:19
zhangqi_gsts
来 自:甘肃天水
等 级:
侠之大者
威 望:
1
帖 子:227
专家分:457
注 册:2011-3-27
第
5
楼
得分:0
用sizeof输出时,函数的大小也会输出来?
2011-07-21 23:52
jcw0812
等 级:
论坛游民
帖 子:6
专家分:20
注 册:2011-8-5
第
6
楼
得分:0
一般般 受教
2011-08-05 12:08
xinshou1991
等 级:
论坛游民
帖 子:35
专家分:45
注 册:2011-7-25
第
7
楼
得分:0
下面是调用过程:
#include <iostream>
#include <cstring>
using namespace std;
class A
{
private:
int num;
public:
A(){}//第二步
A(int num){this->num=num;}
virtual ~A(){}//第六步
};
int main()
{
A a;//第一步和第三步
cout<<sizeof(a)<<endl;//第四步
return 0;//第五步和第七步
}
因为调用了第一步和第二步,"A a"用了两次,所以第四步调用sizeof()时,结果输出8;
2011-08-05 15:24
jcw0812
等 级:
论坛游民
帖 子:6
专家分:20
注 册:2011-8-5
第
8
楼
得分:0
de fgdfghsdfg
2011-08-17 15:39
wenxinwukui
等 级:
新手上路
帖 子:22
专家分:6
注 册:2010-11-15
第
9
楼
得分:0
只要是类中有虚函数,编译器会自动在类中加上一个指向对应虚函数表的指针,在32位的机器上一个指针是4个字节,而类中一个int变量也是4个字节,所以输出结果为8个字节。
2011-08-18 12:21
开了口的记忆
等 级:
论坛游民
帖 子:30
专家分:14
注 册:2011-8-23
第
10
楼
得分:0
因为一个指针是4个字节,而类中一个int变量也是4个字节,所以输出结果为8个字节。
2011-08-24 16:25
11
1/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-345044-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.079412 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved