尝试使用main运行类时出错

时间:2015-03-14 14:49:43

标签: c++ std iostream main

这是代码:

#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秒(秒))=== |

帮助!

3 个答案:

答案 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类移到主函数之前。