我有一个类构造函数,它期望对另一个类对象的引用作为参数传入。我知道当不执行指针算术或不存在空值时,引用比指针更可取。
这是构造函数的头声明:
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;