【发布时间】:2010-03-12 18:21:54
【问题描述】:
我正在做一本 C++ 书籍的练习。对于每个练习,我都想尽量减少必须编写的样板代码。我已经以某种方式设置了我的项目,但它似乎不正确,并且需要进行太多更改。
现在我有一个 main.cpp 文件,其中包含以下内容:
#include "e0614.h"
int main()
{
E0614 ex;
ex.solve();
}
每次我从练习中创建一个新类时,我都必须来修改这个文件以更改包含的标题的名称以及我正在实例化的类。
所以我的问题是:
- 我可以在目录中包含所有标题,这样至少我不必更改
#include行吗? - 更好的是,我是否可以重写我的解决方案,这样我什至不必触摸
main.cpp,而不需要一个包含每个练习的所有代码的文件?
更新:
我最终按照 Poita_ 的建议通过脚本生成 main.cpp。
由于我使用的是 IDE (Visual Studio),因此我希望将其与它集成,因此对如何进行了一些研究。对于那些对如何做感兴趣的人,请继续阅读(这很简单,但并不完全简单)。
Visual Studio 允许您通过“工具”->“外部工具”菜单使用外部工具,并包含一堆预定义的变量,例如 $(ItemFileName),这些变量可以传递给该工具。因此,在本例中,我使用了一个简单的批处理文件,并通过它传递了 Visual Studio 中当前选定文件的名称。
要将该工具添加到工具栏,请右键单击工具栏,选择自定义 -> 命令 -> 工具,然后选择“外部命令 X”并将其拖动到工具栏。将 X 替换为与您创建的工具相对应的编号。我的安装包含工具 -> 外部工具中列出的 5 个默认预先存在的工具,因此我创建的工具编号为 6。您必须弄清楚这个数字,因为它没有显示。然后,您可以为快捷方式分配一个图标(它是如下所示的 BuildMain 命令):
【问题讨论】:
-
抱歉,这里几乎没有样板文件。 - 您所要求的 - 包括所有可能的标题 - 可能会为您节省 2 秒的打字时间(一次性成本),并且如果运气好的话,可以让简单的代码编译十分钟(每次重新编译时)。
-
@UncleBens:主要目标并不是真正包含所有头文件,而是避免修改 main.cpp。为了简单起见,我选择了它作为问题标题,并且我认为在此过程中可能会有一些#ifdef 警卫。