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)
久久天天躁狠狠躁夜夜不卡
|
青青青国产精品国产精品久久久久
|
国产2021久久精品
|
久久国产美女免费观看精品
|
久久乐国产综合亚洲精品
|
亚洲中文字幕无码一久久区
|
亚洲AV日韩精品久久久久久
|
久久精品国产亚洲AV嫖农村妇女
|
香蕉久久一区二区不卡无毒影院
|
国产毛片久久久久久国产毛片
|
精品久久久久久久久久中文字幕
|
中文字幕精品久久
|
国产成人久久激情91
|
久久久久99精品成人片三人毛片
|
久久无码中文字幕东京热
|
国产亚洲综合久久系列
|
无夜精品久久久久久
|
色综合久久久久
|
亚洲AV日韩精品久久久久久久
|
久久精品一区二区三区中文字幕
|
亚洲午夜久久久久妓女影院
|
精品综合久久久久久88小说
|
久久久久久午夜成人影院
|
四虎亚洲国产成人久久精品
|
91久久婷婷国产综合精品青草
|
97精品伊人久久大香线蕉
|
嫩草影院久久99
|
99re这里只有精品热久久
|
久久经典免费视频
|
久久精品无码一区二区app
|
国产精品99久久99久久久
|
久久精品成人欧美大片
|
亚洲国产成人久久综合野外
|
精品久久久久久无码中文野结衣
|
久久综合九色综合97_久久久
|
久久亚洲春色中文字幕久久久
|
亚洲中文字幕无码久久精品1
|
久久久久亚洲AV无码专区首JN
|
久久中文字幕无码专区
|
久久久青草青青国产亚洲免观
|
精品99久久aaa一级毛片
|