[過去ログ] 【初心者歓迎】C/C++室 Ver.102【環境依存OK】 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
588(2): デフォルトの名無しさん [] 2018/04/15(日) 12:35:11 AAS
>>582582(1): デフォルトの名無しさん [] 2018/04/15(日) 10:59:34 ID:c4dXLki+(4/8) AAS
Base::B() の virtual を削除する:
class Base {
public:
void A();
protected
void B();
};
すると、
Base b;
b.A(); ⇒ 「Base」が表示される。
Derived d;
d.A(); ⇒ 「Base」が表示される。
間違えた
Base *bp;
bp = &d;
b->A();
590: デフォルトの名無しさん [] 2018/04/15(日) 12:37:23 ID:c4dXLki+(6/8) AAS
>>587-588
ありがとうございました。
試してみようと思います。
599(1): デフォルトの名無しさん [] 2018/04/15(日) 18:07:17 ID:c4dXLki+(8/8) AAS
>>588
試してみました。
確かにポインタを使うと期待通りの結果でしたが、参照を使うと期待通りにはいきませんでした。
これはなぜでしょうか?
#include "Derived.h"
int main() {
Base b;
Base& br = b;
br.A();
Derived d;
br = d;
br.A();
Base *bp;
bp = &b;
bp->A();
bp = &d;
bp->A();
}
実行結果は以下です。
Base
Base
Base
Derived
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.274s*