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
}
運行結(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
運行結(jié)果為:
那么這個結(jié)果就有點意思,到底是為什么呢?
http://www.diybl.com/course/3_program/c++/cppjs/2007927/74925.html
有詳細的解釋。
posted on 2011-12-01 10:06
sheng
閱讀(350)
評論(0)
編輯
收藏
引用
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
網(wǎng)站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © sheng
導航
C++博客
首頁
新隨筆
聯(lián)系
聚合
管理
<
2025年5月
>
日
一
二
三
四
五
六
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 下進程是否啟動檢測
這種方法還有缺陷的
如果在多用戶的機器下, 不同的用戶下看不到對方用戶下的進程
--leng
2.?re: windows 下進程是否啟動檢測
這個沒有必要用互斥對象吧,只是讀進程表而已@augustheart
--sheng
3.?re: windows 下進程是否啟動檢測
不用互斥對象么?
--augustheart
4.?re: 設計模式之策略模式[未登錄]
Good...
--eryar
閱讀排行榜
1.?利用boost 來進行xml解析(13302)
2.?DLL中傳遞STL參數(shù),vector對象作為dll參數(shù)傳遞等問題(轉(zhuǎn))(6714)
3.?windows 下檢測進程cpu使用率(3773)
4.?luabind和c++相互調(diào)用(3679)
5.?關(guān)于for循環(huán)的執(zhí)行效率問題(3238)
評論排行榜
1.?windows 下進程是否啟動檢測(3)
2.?設計模式之策略模式(1)
3.?設計模式之template method模式(0)
4.?設計模式之觀察者模式(0)
5.?boost安裝(0)
AV无码久久久久不卡蜜桃
|
久久香蕉国产线看观看99
|
欧美精品福利视频一区二区三区久久久精品
|
亚洲色大成网站www久久九
|
亚洲综合伊人久久综合
|
91精品国产91久久
|
区亚洲欧美一级久久精品亚洲精品成人网久久久久
|
色综合久久久久无码专区
|
人妻无码αv中文字幕久久琪琪布
|
jizzjizz国产精品久久
|
亚洲人成无码久久电影网站
|
国产产无码乱码精品久久鸭
|
香蕉aa三级久久毛片
|
国内精品久久久久影院免费
|
久久久这里有精品
|
日本久久久久久中文字幕
|
国产精品久久久久久久app
|
色综合久久中文综合网
|
欧美牲交A欧牲交aⅴ久久
|
久久夜色撩人精品国产
|
国产99久久九九精品无码
|
漂亮人妻被黑人久久精品
|
久久93精品国产91久久综合
|
久久亚洲精品中文字幕三区
|
少妇精品久久久一区二区三区
|
欧美日韩精品久久久久
|
噜噜噜色噜噜噜久久
|
久久精品国产黑森林
|
久久天堂电影网
|
国产精品久久久久久吹潮
|
欧美黑人激情性久久
|
婷婷五月深深久久精品
|
久久精品免费一区二区
|
精品熟女少妇AV免费久久
|
亚洲欧美精品一区久久中文字幕
|
久久久久国产
|
一本久久a久久精品综合香蕉
|
久久精品夜色噜噜亚洲A∨
|
久久九九久精品国产免费直播
|
国产精品青草久久久久福利99
|
麻豆国内精品久久久久久
|