所以这段代码不会起作用,而且可能是一个菜鸟问题。
const Foo foo(Bar(10));
其中Foo的构造函数是:
Foo::Foo(Bar &bar) : bar(bar) {}
错误
没有用于调用Foo :: Foo(Bar&)
的匹配函数
答案 0 :(得分:4)
在说
时,您正在传递对constBar
对象的引用
const Foo foo(Bar(10));
Bar(10)
创建一个临时对象。
您需要更改构造函数签名:
Foo::Foo(const Bar &bar) : bar(bar) {}
// ^^^^^