別のクラス オブジェクトへの参照が引数として渡されることを期待するクラス コンストラクターがあります。ポインター演算が実行されない場合、または null 値が存在しない場合は、ポインターよりも参照が望ましいことを理解しています。
これは、コンストラクターのヘッダー宣言です。
class MixerLine {
private:
MIXERLINE _mixerLine;
public:
MixerLine(const MixerDevice& const parentMixer, DWORD destinationIndex);
~MixerLine();
}
これは、コンストラクター (MixerDevice.cpp) を呼び出すコードです。
void MixerDevice::enumerateLines() {
DWORD numLines = getDestinationCount();
for(DWORD i=0;i<numLines;i++) {
MixerLine mixerLine( this, i );
// other code here removed
}
}
MixerDevice.cpp のコンパイルが次のエラーで失敗します。
エラー 3 エラー C2664: 'MixerLine::MixerLine(const MixerDevice &,DWORD)': パラメーター 1 を 'MixerDevice *const ' から 'const MixerDevice &' に変換できません
しかし、ポインター値を参照に割り当てることができると思いました。
Foo* foo = new Foo();
Foo& bar = foo;