スレを勃てるまでもないC/C++の質問はここで 25 [隔離病棟]©2ch.net (467レス)
前次1-
抽出解除 レス栞

14
(1): 2016/09/01(木)18:20 ID:9l469SL1(1/2) AAS
>>12
コンストラクタやデストラクタのタイミングから考えれば両者は別物
例えばCの初期化時、CのメンバがAやBにアクセスする場合
前者は問題なくCのメンバは初期化されるが
後者は宣言の位置によって未初期化データにアクセスする危険がある

前者はCをAとしてみることが出来るし、CをBとしてみることも出来る
でも後者においてCはCでしかない
例えばAを必要とする関数とBを必要とする関数がある場合、
前者はそのままCを引数に渡せるが後者は適宜メンバを指定しないといけない
もっともオーバーロードされた関数だとCをAかBにキャストしてやんないと曖昧だと怒られる

もちろん適切に宣言されていることは前提
15
(1): 2016/09/01(木)18:26 ID:9l469SL1(2/2) AAS
>>12
>>14の補足
>後者は宣言の位置によって未初期化データにアクセスする危険がある
Cのメンバを初期化リストで初期化する場合の話ね
コンストラクタ本体部分でメンバに値を代入する場合なら、
Cのメンバはすでに初期化された後なので参照は可能
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.252s*