次のような状況でコピーが作成されたのか、両方の参照が同じオブジェクトを指しているのか不思議です。 constの参照パラメータから初期化された単一のconst参照フィールドを持つクラスを考えてみましょう:refを初期化します。 refでフィールド。パラメータ:コピーは作成されていますか?
class Foo {
public:
Foo(const vector<double>& the_doubles) : my_doubles(the_doubles) {}
private:
const vector<double>& my_doubles;
}
だから、my_doublesは、コンストラクタに渡されたのと同じベクトルを指すようになります、またはコピーが作成されますか?
* const *の参照をコンストラクタに渡すときは、一時的に渡さないように十分注意してください。そうしないと、保存された参照はすぐに無効になります。 –