c++ - 如何通过包含相应的 .h 文件从 .cpp 中获取函数/类定义?

标签 c++ function class header

例如,在 A.h 中:

class A{
   void method();
};

在 A.cpp 中:

#include "A.h"

void A::method(){/*do stuff*/};

在 main.cpp 中

#include "A.h"

int main(){
   A a;

   a.method();
}

如何通过在我的 main.cpp 文件中仅包含 A.h 来访问 A.cpp 中方法的定义?是否有涉及 makefile 或 IDE 的技巧?

最佳答案

Is there a trick involving makefiles or IDEs?

这个“技巧”称为链接——将所有已编译的模块和库一起加载到可执行文件中。在您的情况下,您可以手动执行此操作:

g++ -c a.cpp -o a.o  // compiling a.cpp and producing object file a.o
g++ -c main.cpp -o main.o // compiling main.cpp and producing object file main.o
g++ main.o a.o -o myprog // linking all object files together with system libraries and producing executable myprog

对于不同的编译器,命令可能看起来不同,但过程是一样的。当然,您不想一次又一次地键入所有内容,因此您希望将其自动化。 IDE 或 makefile 为您完成的工作,不涉及任何技巧或魔法。

关于c++ - 如何通过包含相应的 .h 文件从 .cpp 中获取函数/类定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34499600/

相关文章:

c++ - 如何检查用户是否输入了有效值?

c++ - GNU Makefile - 多个目标的通用 Makefile

c++ - 二叉搜索树中的有序遍历复杂性(使用迭代器)?

C++:在函数中使用共享指针作为参数是否可以,还是在浪费内存?

c - 需要在函数前加上 (void)

function - 将函数传递给辅助方法

c++ - 类扩展 GtkWindow

c++ - 带有 `class` 详细类型说明符的方法参数

c++ - 为什么 glGetString(GL_EXTENSIONS) 的搜索不能正常工作?

php - 在AS3中使用自定义类处理数据库查询