スレを勃てるまでもないC/C++の質問はここで
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
300:デフォルトの名無しさん 07/02/05 01:09:35 同じ定義を複数のファイルに書いたりしない。一個をインクルードするだろ。常識的に考えて。 301:デフォルトの名無しさん 07/02/05 02:02:43 >>300 そういうこといっているんじゃないと思うが。 その通り実際にはヘッダファイルに書くけど ヘッダファイルにstatic const int a=10;を書いて複数のファイルからインクルードするのと 複数のファイルにstatic const int a=10;を書きのとで staticやexternの動作は変わらないでしょ。 それとも別の話? 302:デフォルトの名無しさん 07/02/05 14:30:40 質問です、class Aを継承したclass Bが存在したとします。 class Aに仮想デストラクタが存在しない場合、class Bのデストラクタが呼ばれないと聞きました。 これは、常に真なのでしょうか? B Obj;などと動的に生成しなくても、デストラクタはやはり呼ばれないのでしょうか? 303:デフォルトの名無しさん 07/02/05 14:55:20 >>302 A *obj = new B; みたいな使い方した場合。 Aに仮想関数が存在しなければobjはすべてAとして動作するから、 デストラクタもAのデストラクタが動けばいいけど 仮想関数が存在した場合、objはBとして動作することがある。 そのときBの動作してAのデストラクタしか動かなかった場合、危険でそ? B *obj = new B; のように宣言するならちゃんとobjが破棄されたときにBのデストラクタが動くはず。 でもそんなリスキーなこと考えず、仮想メンバ関数のあるクラスには virtualなデストラクタを置くのが常識。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4830日前に更新/129 KB
担当:undef