我刚刚发现我的代码不能正确编译?这里有编译器提供的构造函数吗?
class A
{
private:
A(const A& n);
};
int main()
{
A a;
}
Run Code Online (Sandbox Code Playgroud)
错误是test.cpp:18:错误:没有匹配函数来调用'A :: A()'test.cpp:11:注意:候选者是:A :: A(const A&)
我在Ubuntu 8.04下使用g ++
编译器将为您提供
A()当且仅当没有用户定义的构造函数时,默认构造函数A(A const &),除非你要么提供四种可能的拷贝构造函数的A(A cv &),其中cv是的任意组合const和volatile.在您的情况下,您已经声明了自己的复制构造函数,这意味着编译器将不提供上述任何一种.
该行A a;需要一个可访问的默认构造函数来进行编译.
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |