Barbarossa Blog
2005 / 08   «« »»
01
M
02
T
03
W
04
T
05
F
06
S
07
S
08
M
09
T
10
W
11
T
12
F
13
S
14
S
15
M
16
T
17
W
18
T
19
F
20
S
21
S
22
M
23
T
24
W
25
T
26
F
27
S
28
S
29
M
30
T
31
W
meaning of mark :: nothing , comment
Counter
total : 1808736
yesterday : 16165 / today : 2874

Online Status

Profile
hHandleName = Fe+;



某メーカ勤務の怪しい会社員。
40代に突入しても不惑の域に達しない。

Recent Diary

Recent Comments

RSS & Atom Feed
Barbarossa Blog
RSS1.0 / RSS2.0 / Atom0.3
Kの外部記憶
RSS1.0 / RSS2.0 / Atom0.3
Fe+の子育てログ
RSS1.0 / RSS2.0 / Atom0.3
Fe+の麺類万歳
RSS1.0 / RSS2.0 / Atom0.3
Fe+の千夜一夜
RSS1.0 / RSS2.0 / Atom0.3
Fe+の外部記憶
RSS1.0 / RSS2.0 / Atom0.3
Fe+の自腹 de movie
RSS1.0 / RSS2.0 / Atom0.3
Fe+の逆転MBA
RSS1.0 / RSS2.0 / Atom0.3
転載 no Blog
RSS1.0 / RSS2.0 / Atom0.3
ヘタウマお絵かき
RSS1.0 / RSS2.0 / Atom0.3
チャレンジ英語1000時間
RSS1.0 / RSS2.0 / Atom0.3

2005/08/10
寝かせてくれ〜

うわぁ〜勘弁してちょ、日テレの深夜番組枠で

シベリア超特急2

をやっているよ〜。
寝るつもりだったのに。

シベ超フリークとしては抑えない訳にはいかないんですよね。
眠いけど・・・観たい・・・観たいけど・・・・

眠いよ〜[:涙ぽろりネコ:]

晴郎ちゃんは相変わらず

ネ申レベル

の演技力ですな。
posted at 2005/08/10 4:07:15
lastupdate at 2005/08/10 4:07:15
修正
comments (0) ||
 
ほう〜、なるほど。

あまりBarbarossa Blogには仕事の事は書かないようにしているのですが、ネタ的に面白かったので書いてみました。

今日、会社の同僚のMINEタソと仕事をしていてC++のクラスがどのようなサイズになるかというネタになったので調べてみました。

自宅に帰ってからもプログラムを作る男

その1・メンバ変数だけ

class CTest {

int a;
int b;

};


この場合には、単純に構造体と同じでsizeof(CTest) = 8になります。
(モチint=32Bitね)

その2・メンバ関数のみ

class CTest {

void Func( void ){ return; }

};


この場合、sizeof(CTest)は

1バイト

になります。
へぇ〜

その3・仮想関数の場合

class CTest {

virtual void Func( void ){ return; }

};


この場合にはsizeof(CTest)=4になります。
これは仮想関数アドレスを格納する関数ポインタテーブルへのポインタである4バイトが付加されるからという事です。
つまり、仮想関数がいくつ増えても、テーブルへのポインタなので4バイトからは増えません。

その4・staticメンバ変数を持つ場合

class CTest {

static int a;
static int b;

};


この場合にはsizeof(CTest)は

1バイト

になります。

その5・staticメンバ関数を持つ場合

class CTest {

static void Func( void ){ return; };

};


この場合もやっぱり1バイトのようです。

ラスト・staticメンバ変数と仮想関数とメンバ関数を持つ場合

class CTest {

static int a;
static int b;

virtual void VirtualFunc( void ){ return; };
void Func( void ){ return; };

};


・・・・結果は、

4バイト

でした。
どうやら、仮想関数のアドレステーブルへのポインタvptrの4バイトだけになるようです。

ちなみに、staticメンバ変数や、通常のメンバ関数はいくつあっても1バイトのままでした。
さらに上記にように、メモリを消費するようなメンバがいると、その1バイトすらなくなってしまうみたいですね。(オブジェクトとしてはメモリを使わないということかな?)

以上仕事ネタでした。

プログラム知らない方、ごめんなさい〜
posted at 2005/08/10 3:52:26
lastupdate at 2005/08/10 3:57:13
修正
comments (0) ||