いつコピーされ、いつ C++ で参照されるのか、少し混乱しています。たとえば、引数が参照であるこの非常に単純なメソッドがあります。
void setTimeSig(const int &tsNumerator, const int &tsDenominator) {
this->timeSigNum = tsNumerator;
this->timeSigDenom = tsDenominator;
}
これは、関数 where が終了したときに参照を使用しているため、とを持つsetTimeSig
オブジェクトはこれら 2 つのフィールドが空になるということですか? または、この時点でコピーされています:timeSigNum
timeSigDenom
this->timeSigNum = tsNumerator;
そして、同じことについてもう 1 つ質問します。
class A{
public:
B bObject;
}
B b;
A a;
a.bObject = b;
現在 b を参照していbObject
ますか、それともコピーが含まれていますか?
これについてどこで、または何を読むべきかについての情報は大歓迎です。私はまだ多くのことを混乱させています。