尝试使用 main 运行类时出错

Error trying to make a class run with main

本文关键字:出错 运行 main      更新时间:2023-10-16

这是代码:

#include <iostream>
using namespace std;
class A;
int main(){
    A aObject;
    aObject.cool();
    return 0;
}
class A{
    public:
        void cool(){
            cout << "hi";
        }
 };

但是当我尝试运行它时,出现此错误:

||=== 构建:先调试(编译器:GNU GCC 编译器) ===|在函数 'int main()' 中:|

错误:聚合"对象"类型不完整,无法定义|

||=== 构建失败:1 个错误、0 个警告(0 分钟、0 秒)===|

帮助!

#include <iostream>
using namespace std;
class A;
int main(){
    A aObject;

此时,编译器只知道有一个名为A的类。它还不知道关于它的任何其他事情。它不知道它的大小,也不知道如何构造类的对象。它需要它的定义来构造一个对象。

以下程序之所以有效,是因为编译器在您创建类对象的点知道类的定义:

#include <iostream>
using namespace std;
class A{
    public:
        void cool(){
            cout << "hi";
        }
 };
int main(){
    A aObject;
    aObject.cool();
    return 0;
}

你把东西放在山雀上。 试试这个:

#include <iostream>
using namespace std;
class A{
    public:
        void cool(){
            cout << "hi";
        }
 };
int main(){
    A aObject;
    aObject.cool();
    return 0;
}

将类 A 移到主函数之前。