这个为什么有错啊?

moxiaolong 2004-12-12 01:58:48
定义的一个类
class A
{
public:
A(A &);
A *h;
private:
...
};
A::A(A &b)
{
h = new A;
...
}
出错"error C2512: 'A' : no appropriate default constructor available".(VC6)
请问是什么原因.
...全文
106 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sam_ai 2004-12-12
  • 打赏
  • 举报
回复
你是在写类呀:-) 不是实例,A只有一个!!
dongyuanzhang 2004-12-12
  • 打赏
  • 举报
回复
~A() 少了;
你的另外一个问题好像是B的返回值有void 和int两种,这可不是正确的重载方法!
dongyuanzhang 2004-12-12
  • 打赏
  • 举报
回复
你定义了一个构造函数A(A&),编译器也就不不会生成缺省构造函数A()了,需要再定义一个缺省构造函数A()!
moxiaolong 2004-12-12
  • 打赏
  • 举报
回复
class A
{
public:
A();
~A()
A *h;
void B(A &);
private:
...
};
A::B(A &b)
{
...
}
我改成这样后有两个错误:
error C2556: 'int __thiscall A::B(class A &)' : overloaded function differs only by return type from 'void __thiscall A::B(class A &)'
see declaration of 'B'
error C2371: 'ADD' : redefinition; different basic types
see declaration of 'B'
这又是怎么回事啊?
jsblcg 2004-12-12
  • 打赏
  • 举报
回复
你定义了一个构造函数A(A&),编译器也就不不会生成缺省构造函数A()了,需要再定义一个A()才行
另外,你在一个构造函数中创建自己,比较特别,有什么特别的用意吗?一般不应该有这样的代码
ynotgo 2004-12-12
  • 打赏
  • 举报
回复
class A
{
public:
A();
~A();
A(A &);
A *h;
private:

};
这样的话可以通过,我也不知道什么意思
ftkghost 2004-12-12
  • 打赏
  • 举报
回复
错 是没有默认构造函数
ftkghost 2004-12-12
  • 打赏
  • 举报
回复
构造函数没有默认值

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧