如果我在 main() 函数之后放置一个类,C++ 将编写什么代码

标签 c++ class program-entry-point

我正在观看一些关于 C++ 的视频教程,我知道您必须在使用或调用函数/类之前定义它。但我喜欢将 main() 函数放在顶部,而将其他所有内容放在 main 函数下方。我知道如果我在主函数下面定义一个函数,我必须在使用它之前声明它,但是类呢?我需要在 main 函数上方放置什么才能在 main 函数下方使用我的类。

#include <iostream>
using namespace std;

int main()
{
    ClassOne one;
    one.coolSaying();
    return 0;
}

class ClassOne
{
    public:
        void coolSaying()
        {
            cout << "Cool stuff yo!" << endl;
        }
};

我尝试通过将其放在 main() 之前来定义我的类:

class ClassOne;

但它不起作用。

最佳答案

这就是为什么在 C++ 中通常使用头文件的原因。当您说 ClassOne one 时,编译器需要知道类的外观才能创建该类型的对象。仅仅知道该类存在于某处是不够的(如果您只需要一个指针就足够了)。所以编译器需要已经读取类的定义。

您的类必须在首次使用前定义。如果不明确将其放在 main 之前,通常的方法是创建一个头文件。因此,您使用类声明创建 ClassOne.h,并且文件顶部有 #include "ClassOne.h。在这种情况下,类的实际方法通常在另一个源文件 ClassOne.cpp 中。

关于如果我在 main() 函数之后放置一个类,C++ 将编写什么代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18045988/

相关文章:

java - 包中的 Main 类?

java - Wicket 与主要方法(Wicket 如何工作?)

java - 在 main 之外的方法中使用 print 语句是否更有效,或者它是否重要?

c# - 从 C# 应用程序执行 C++ 函数

Android "WIN DEATH"无警告

JQuery 在 JS fiddle 中可以工作,但不能在我的网站上工作?

python - 为什么 __slots__ = ('__dict__' ,) 会产生更小的实例?

c++ - 将自定义 qt 小部件动态添加到框架中,而无需每次都更改布局

c++ - 正在使用变量 timeOld 而未在 C++ 中初始化

java - 是否可以通过类方法访问实例方法和变量