Tre*_*com 9 c++ constructor initialization reference
我试图阻止访问我正在编写的类的默认构造函数.我希望其他人使用的构造函数需要对另一个对象的const引用.我已将默认构造函数设为私有,以防止其他人使用它.我收到默认构造函数的编译器错误,因为const引用成员变量未正确初始化.我该怎么做才能编译?
class CFoo
{
public:
CFoo();
~CFoo();
};
class CBar
{
public:
CBar(const CFoo& foo) : fooReference(foo)
{
}
~CBar();
private:
const CFoo& fooReference;
CBar() // I am getting a compiler error because I don't know what to do with fooReference here...
{
}
};
Run Code Online (Sandbox Code Playgroud)
Any*_*orn 13
不要声明默认构造函数.如果你声明自己的构造函数,它无论如何都不可用(自动它是).
class CBar
{
public:
CBar(const CFoo& foo) : fooReference(foo)
{
}
private:
const CFoo& fooReference;
};
Run Code Online (Sandbox Code Playgroud)
有关构造函数的相当全面的解释可以在这里找到:http: //www.parashift.com/c++-faq-lite/ctors.html
| 归档时间: |
|
| 查看次数: |
16632 次 |
| 最近记录: |