这是代码:
#include <iostream>
using namespace std;
class A;
int main(){
A aObject;
aObject.cool();
return 0;
}
class A{
public:
void cool(){
cout << "hi";
}
};
但是当我尝试运行它时,我收到了这个错误:
|| === Build:Debug in First(编译器:GNU GCC编译器)=== |在函数&#39; int main()&#39;:|
错误:聚合&#39; a aObject&#39;具有不完整的类型,无法定义|
|| ===构建失败:1个错误,0个警告(0分钟,0秒(秒))=== |
帮助!
答案 0 :(得分:3)
#include <iostream> using namespace std; class A; int main(){ A aObject;
此时,编译器只知道有一个名为A
的类。它还不知道其他任何事情。它不知道它的大小,也不知道如何构造类的对象。它需要 definition 来构造一个对象。
以下程序有效,因为编译器在创建对象时知道类的定义:
#include <iostream>
using namespace std;
class A{
public:
void cool(){
cout << "hi";
}
};
int main(){
A aObject;
aObject.cool();
return 0;
}
答案 1 :(得分:2)
你对山雀有点蠢事。试试这个:
#include <iostream>
using namespace std;
class A{
public:
void cool(){
cout << "hi";
}
};
int main(){
A aObject;
aObject.cool();
return 0;
}
答案 2 :(得分:1)
将A类移到主函数之前。