读书人

急为什么说小弟我没有构造函数

发布时间: 2012-03-09 16:54:57 作者: rapoo

急!为什么说我没有构造函数?
现有三个文件
//A.h文件
class A
{
A();
.......
}

//A.cpp文件
A::A()
{}

//B.h文件

class A;//声明了class A
.....
class B:
{
void init()
{
A* p = new A();
.....
}
}

编译的时候,A* p = new A()这行报错:

error C2512: 'A ' : no appropriate default constructor available

请问是为什么?谢谢




[解决办法]
将“ A* p = new A();”
改成 A* p = new A;即可。

[解决办法]
在B.h里包含A.h
[解决办法]
//B.h文件

#include "A.h " ////


.....
class B:
{
void init()
{
A* p = new A();
.....
}
}

[解决办法]
晕,不能#include "A.h ",那在B.h中你怎么能声明class A?

[解决办法]
因为默认是私有的,不能进行创建A类的对象

读书人网 >C++

热点推荐