C++通过引用将`this`传递给方法

Dai*_*Dai 2 c++ reference pass-by-reference

我有一个类构造函数,期望引用另一个类对象作为参数传入.据我所知,当没有执行指针算术或不存在空值时,引用优于指针.

这是构造函数的头声明:

class MixerLine {

private:
    MIXERLINE _mixerLine;

public:

    MixerLine(const MixerDevice& const parentMixer, DWORD destinationIndex); 

    ~MixerLine();
}
Run Code Online (Sandbox Code Playgroud)

这是调用构造函数的代码(MixerDevice.cpp):

void MixerDevice::enumerateLines() {

    DWORD numLines = getDestinationCount();
    for(DWORD i=0;i<numLines;i++) {

        MixerLine mixerLine( this, i );
        // other code here removed
    }
}
Run Code Online (Sandbox Code Playgroud)

MixerDevice.cpp的编译失败,出现此错误:

错误3错误C2664:'MixerLine :: MixerLine(const MixerDevice&,DWORD)':无法将参数1从'MixerDevice*const'转换为'const MixerDevice&'

但我认为指针值可以分配给指针,例如

Foo* foo = new Foo();
Foo& bar = foo;
Run Code Online (Sandbox Code Playgroud)

ybu*_*ill 8

this是一个指针,要获取引用,你必须取消引用(*this)它:

MixerLine mixerLine( *this, i );
Run Code Online (Sandbox Code Playgroud)