gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 23:36:57 26 4
gpt4 key购买 nike

我有一个类构造函数,它希望将对另一个类对象的引用作为参数传入。我知道当不执行指针运算或空值不存在时,引用优于指针。

这是构造函数的头部声明:

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 的编译失败并出现此错误:

Error 3 error C2664: 'MixerLine::MixerLine(const MixerDevice &,DWORD)' : cannot convert parameter 1 from 'MixerDevice *const ' to 'const MixerDevice &'

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

Foo* foo = new Foo();
Foo& bar = foo;

最佳答案

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

MixerLine mixerLine( *this, i );

关于C++ 通过引用将 `this` 传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11170440/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com