cppopp
關(guān)于虛函數(shù)和虛繼承的一點(diǎn)思考
今天寫了個(gè)測試程序
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é)果為:
這個(gè)結(jié)果很容易理解,sizeof(a)為 aa[3] + 虛指針的大小,也即4+4 = 8(經(jīng)過一次數(shù)據(jù)對(duì)齊)。
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é)果為:
那么這個(gè)結(jié)果就有點(diǎn)意思,到底是為什么呢?
http://www.diybl.com/course/3_program/c++/cppjs/2007927/74925.html
有詳細(xì)的解釋。
posted on 2011-12-01 10:06
sheng
閱讀(350)
評(píng)論(0)
編輯
收藏
引用
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © sheng
導(dǎo)航
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)計(jì)
隨筆 - 27
文章 - 0
評(píng)論 - 4
引用 - 0
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(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)
同行
搜索
最新評(píng)論
1.?re: windows 下進(jìn)程是否啟動(dòng)檢測
這種方法還有缺陷的
如果在多用戶的機(jī)器下, 不同的用戶下看不到對(duì)方用戶下的進(jìn)程
--leng
2.?re: windows 下進(jìn)程是否啟動(dòng)檢測
這個(gè)沒有必要用互斥對(duì)象吧,只是讀進(jìn)程表而已@augustheart
--sheng
3.?re: windows 下進(jìn)程是否啟動(dòng)檢測
不用互斥對(duì)象么?
--augustheart
4.?re: 設(shè)計(jì)模式之策略模式[未登錄]
Good...
--eryar
閱讀排行榜
1.?利用boost 來進(jìn)行xml解析(13301)
2.?DLL中傳遞STL參數(shù),vector對(duì)象作為dll參數(shù)傳遞等問題(轉(zhuǎn))(6712)
3.?windows 下檢測進(jìn)程cpu使用率(3772)
4.?luabind和c++相互調(diào)用(3679)
5.?關(guān)于for循環(huán)的執(zhí)行效率問題(3238)
評(píng)論排行榜
1.?windows 下進(jìn)程是否啟動(dòng)檢測(3)
2.?設(shè)計(jì)模式之策略模式(1)
3.?設(shè)計(jì)模式之template method模式(0)
4.?設(shè)計(jì)模式之觀察者模式(0)
5.?boost安裝(0)
久久96国产精品久久久
|
一本久久免费视频
|
99久久精品免费看国产一区二区三区
|
精品久久人人爽天天玩人人妻
|
狠狠色丁香久久婷婷综合五月
|
久久亚洲精品无码aⅴ大香
|
热RE99久久精品国产66热
|
国产午夜精品久久久久九九电影
|
国产一区二区三区久久
|
久久精品中文字幕久久
|
国产精品久久毛片完整版
|
精品久久久久久久久中文字幕
|
久久精品国产亚洲麻豆
|
国产精品日韩欧美久久综合
|
久久精品国产精品亚洲人人
|
久久国产热这里只有精品
|
四虎亚洲国产成人久久精品
|
久久精品国产欧美日韩99热
|
精品无码久久久久国产动漫3d
|
人妻精品久久久久中文字幕69
|
久久国产精品一国产精品金尊
|
色噜噜狠狠先锋影音久久
|
久久国产综合精品五月天
|
久久精品国产亚洲AV不卡
|
国产精品国色综合久久
|
久久久综合香蕉尹人综合网
|
成人久久免费网站
|
99久久婷婷国产一区二区
|
久久精品国产亚洲AV久
|
国产一区二区三区久久精品
|
少妇被又大又粗又爽毛片久久黑人
|
久久这里都是精品
|
久久国产热精品波多野结衣AV
|
久久国产香蕉一区精品
|
久久亚洲精精品中文字幕
|
美女久久久久久
|
色综合久久久久
|
久久久亚洲裙底偷窥综合
|
伊人久久综合热线大杳蕉下载
|
伊人色综合久久天天人守人婷
|
亚洲国产精品狼友中文久久久
|