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)
久久久久亚洲AV成人网人人网站
|
91精品国产高清91久久久久久
|
久久福利片
|
亚洲国产成人久久综合区
|
久久久久久精品久久久久
|
国产精品99久久不卡
|
狠狠色综合网站久久久久久久高清
|
久久精品国产亚洲av瑜伽
|
久久国产免费直播
|
久久久久久一区国产精品
|
久久久久AV综合网成人
|
综合久久一区二区三区
|
色婷婷综合久久久中文字幕
|
99久久99久久精品国产片果冻
|
伊人久久精品影院
|
欧美色综合久久久久久
|
97久久精品人人澡人人爽
|
亚洲AV无码久久精品狠狠爱浪潮
|
久久狠狠一本精品综合网
|
久久国产乱子伦精品免费强
|
无码人妻精品一区二区三区久久久
|
日本精品久久久久久久久免费
|
久久精品人人做人人爽电影
|
亚洲AV乱码久久精品蜜桃
|
久久综合精品国产一区二区三区
|
精品免费久久久久国产一区
|
久久91精品国产91久久麻豆
|
色婷婷综合久久久久中文一区二区
|
久久亚洲国产精品123区
|
久久久久黑人强伦姧人妻
|
久久精品国产精品青草app
|
国产精品久久一区二区三区
|
久久久久亚洲AV成人片
|
亚洲国产精品无码久久
|
少妇人妻88久久中文字幕
|
亚洲AV日韩精品久久久久久
|
久久精品国产亚洲精品2020
|
AV无码久久久久不卡蜜桃
|
久久久久久a亚洲欧洲aⅴ
|
91精品国产综合久久香蕉
|
久久精品人人做人人妻人人玩
|