[過去ログ] 【初心者歓迎】C/C++室 Ver.102【環境依存OK】 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
603: デフォルトの名無しさん [] 2018/04/16(月) 07:57:32 ID:PsSdBUuj(1/3) AAS
>>602
602(1): デフォルトの名無しさん [sage] 2018/04/16(月) 00:20:31 ID:TXxoP4/a(1/2) AAS
参照のポインタっぽい振る舞いを確認したいならこう

Derived d;
Base & b1(d);
b1.A();
ありがとうございました。
下の結果は、

Base
Derived
Derived

になりました。1番目と2番目の違いがよく分かりません。この違いが分かれば、疑問が
解消することになると思うので、理解したいです。

#include "Derived.h"

int main() {
Derived d;
Base b;

Base& br1 = b;
br1 = d;
br1.A();

Base& br2(d);
br2.A();

Base *bp;
bp = &d;
bp->A();
}
604
(1): デフォルトの名無しさん [] 2018/04/16(月) 08:01:12 ID:PsSdBUuj(2/3) AAS
Base
Derived
Derived

となりました。

2番目と3番目は同じことの別表現のようですね。
見た感じ、1番目と2番目に違いがあるようには思えません。

Derived d;
Base b;

Base& br1 = b;
br1 = d;
br1.A();

Base& br2 = d;
br2.A();

Base& br3(d);
br3.A();
606: デフォルトの名無しさん [sage] 2018/04/16(月) 08:32:20 ID:PsSdBUuj(3/3) AAS
>>605
605(1): デフォルトの名無しさん [sage] 2018/04/16(月) 08:14:10 ID:TXxoP4/a(2/2) AAS
>>604
参照は初期化時に参照先が設定され、以降の操作は参照先に対してなされる。
初期化と代入を区別すること。

Base& br1 = b; // 初期化 br1 は b の参照
br1 = d; // 代入 b = d と同じ動作

Base& br2 = d; // 初期化 br2 は d の参照

ありがとうございました。

>Base& br1 = b; // 初期化 br1 は b の参照
>br1 = d; // 代入 b = d と同じ動作

br1 = d としても参照先は変わらないんですね。

ありがとうございました。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.041s