急!为什么说我没有构造函数?
现有三个文件
//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类的对象