cppopp
關(guān)于虛函數(shù)和虛繼承的一點思考
今天寫了個測試程序
1
#include
"
stdafx.h
"
2
#include
"
iostream
"
3
4
using
namespace
std;
5
6
class
a
{
7
public
:
8
char
k[
3
];
9
virtual
int
aa();
10
}
;
11
12
class
b:
public
virtual
a
13
{
14
15
public
:
16
char
m[
3
];
17
virtual
int
bb();
18
}
;
19
20
class
c:
public
virtual
b
21
{
22
public
:
23
char
s[
3
];
24
virtual
int
cc();
25
}
;
26
27
int
_tmain(
int
argc, _TCHAR
*
argv[])
28
{
29
30
cout
<<
"
sizeof(a)=:
"
<<
sizeof
(a)
<<
endl;
31
cout
<<
"
sizeof(b)=:
"
<<
sizeof
(b)
<<
endl;
32
cout
<<
"
sizeof(c)=:
"
<<
sizeof
(c)
<<
endl;
33
34
return
0
;
35
}
運(yùn)行結(jié)果為:
這個結(jié)果很容易理解,sizeof(a)為 aa[3] + 虛指針的大小,也即4+4 = 8(經(jīng)過一次數(shù)據(jù)對齊)。
sizeof(b)就為 b自身的大小8 + sizeof(a)+指針大小 = 8 +8 +4 = 20;
sizeof(c)和b的大小算法類似 為 =8+ 20 + 4 =32
那如果程序改成非虛繼承那么結(jié)果是什么樣呢?
1
#include
"
stdafx.h
"
2
#include
"
iostream
"
3
4
using
namespace
std;
5
6
class
a
{
7
public
:
8
char
k[
3
];
9
virtual
int
aa();
10
}
;
11
12
class
b:
public
a
13
{
14
15
public
:
16
char
m[
3
];
17
virtual
int
bb();
18
}
;
19
20
class
c:
public
b
21
{
22
public
:
23
char
s[
3
];
24
virtual
int
cc();
25
}
;
26
27
int
_tmain(
int
argc, _TCHAR
*
argv[])
28
{
29
30
cout
<<
"
sizeof(a)=:
"
<<
sizeof
(a)
<<
endl;
31
cout
<<
"
sizeof(b)=:
"
<<
sizeof
(b)
<<
endl;
32
cout
<<
"
sizeof(c)=:
"
<<
sizeof
(c)
<<
endl;
33
34
return
0
;
35
}
36
運(yùn)行結(jié)果為:
那么這個結(jié)果就有點意思,到底是為什么呢?
http://www.diybl.com/course/3_program/c++/cppjs/2007927/74925.html
有詳細(xì)的解釋。
posted on 2011-12-01 10:06
sheng
閱讀(353)
評論(0)
編輯
收藏
引用
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © sheng
導(dǎo)航
C++博客
首頁
新隨筆
聯(lián)系
聚合
管理
<
2011年12月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
統(tǒng)計
隨筆 - 27
文章 - 0
評論 - 4
引用 - 0
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆檔案
2018年11月 (1)
2016年8月 (2)
2016年6月 (1)
2016年4月 (4)
2013年4月 (1)
2013年3月 (1)
2013年1月 (1)
2012年11月 (5)
2012年8月 (3)
2012年6月 (1)
2012年5月 (1)
2012年4月 (3)
2011年12月 (3)
收藏夾
timer
(rss)
同行
(rss)
同行
搜索
最新評論
1.?re: windows 下進(jìn)程是否啟動檢測
這種方法還有缺陷的
如果在多用戶的機(jī)器下, 不同的用戶下看不到對方用戶下的進(jìn)程
--leng
2.?re: windows 下進(jìn)程是否啟動檢測
這個沒有必要用互斥對象吧,只是讀進(jìn)程表而已@augustheart
--sheng
3.?re: windows 下進(jìn)程是否啟動檢測
不用互斥對象么?
--augustheart
4.?re: 設(shè)計模式之策略模式[未登錄]
Good...
--eryar
閱讀排行榜
1.?利用boost 來進(jìn)行xml解析(13307)
2.?DLL中傳遞STL參數(shù),vector對象作為dll參數(shù)傳遞等問題(轉(zhuǎn))(6731)
3.?windows 下檢測進(jìn)程cpu使用率(3802)
4.?luabind和c++相互調(diào)用(3683)
5.?關(guān)于for循環(huán)的執(zhí)行效率問題(3239)
評論排行榜
1.?windows 下進(jìn)程是否啟動檢測(3)
2.?設(shè)計模式之策略模式(1)
3.?設(shè)計模式之template method模式(0)
4.?設(shè)計模式之觀察者模式(0)
5.?boost安裝(0)
久久久久综合网久久
|
亚洲日韩欧美一区久久久久我
|
久久A级毛片免费观看
|
久久久久亚洲AV无码网站
|
久久99国产精品一区二区
|
国产女人aaa级久久久级
|
中文字幕热久久久久久久
|
色综合久久中文色婷婷
|
久久亚洲国产成人影院
|
久久久精品午夜免费不卡
|
亚洲国产成人精品久久久国产成人一区二区三区综
|
色综合久久88色综合天天
|
久久久久亚洲AV成人网人人网站
|
四虎国产精品成人免费久久
|
国产精品99久久久久久董美香
|
久久午夜无码鲁丝片秋霞
|
激情综合色综合久久综合
|
人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区
|
狠狠精品久久久无码中文字幕
|
亚洲天堂久久精品
|
久久国产乱子伦免费精品
|
久久久久久国产a免费观看黄色大片
|
九九久久99综合一区二区
|
中文字幕热久久久久久久
|
亚洲国产成人精品女人久久久
|
久久精品国产亚洲欧美
|
久久久久亚洲av无码专区喷水
|
yy6080久久
|
久久婷婷人人澡人人爽人人爱
|
久久青青草原精品国产不卡
|
91亚洲国产成人久久精品网址
|
999久久久免费精品国产
|
久久精品国产亚洲AV无码娇色
|
中文字幕日本人妻久久久免费
|
久久成人国产精品免费软件
|
亚洲欧美日韩精品久久亚洲区
|
久久精品18
|
久久久午夜精品福利内容
|
国内精品九九久久精品
|
色欲久久久天天天综合网
|
色诱久久久久综合网ywww
|