如何在Qt Creator中声明main.cpp文件外的函数

时间:2014-04-30 13:05:42

标签: javascript c++ qt

如果你能帮助我,我将非常感激!

前段时间,我和一些朋友一起创建了一个使用JavaScript的小型网络浏览器游戏。 我们遇到的主要问题之一是“主”文件的大维度。 所以我们决定将“main”文件拆分为多个代码文件,例如: Globals.js,我们存储了所有全局变量Path.js,我们在那里制作了不同的算法。等等。

以这种方式工作非常简单 - 它给人一种结构感。 Main.js可以自由地获取其他代码文件中声明的每个函数。我们只需将JavaScript文件放在与main.js文件相同的文件夹中,并且有一个漂亮的main()函数,没有别的。

现在,我正在使用Qt Creator,而我正在使用C ++。当然,还有main.cpp文件,核心就是这么说的。如何在main.cpp文件之外声明函数,以便我的main.cpp文件看起来不错,没有混乱,仍然能够访问这些函数?

1 个答案:

答案 0 :(得分:1)

嗯,你有两个选择,基本上:

1)在主函数所在的main.cpp中声明它们。

2)在单独的文件中声明它们,但包括它们的标题,或使用extern在Skype中引入它们。

一般情况下,Qt是一个面向对象的C ++框架,所以你要处理类,除非你为全局运算符使用独立函数等。

我将尝试用简单的片段来表达这个想法:

foo.h中

void foo() {}

的main.cpp

#include "foo.h"

int main() { return 0; }

在main.cpp中定义它们也可以如下:

的main.cpp

void foo() {}
int main() { return 0; }

这就是它。您将链接到他们的定义" foo"在" main"之后函数,它们之前只声明它,但一般来说,最好避免这种情况。它不仅添加额外的代码,而且不会使函数之间的依赖关系明显,而不是以大致依赖顺序排序定义。

话虽如此,Qt世界中最常见的主要功能之一就是使用类看起来像这样:

的main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char** argv)
{
    QApplication application(argc, argv);
    MainWindow w;
    w.show();
    return application.exec();
}