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

时间:2015-12-28 19:35:54

标签: 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的技巧?

2 个答案:

答案 0 :(得分:4)

  

是否存在涉及makefile或IDE的技巧?

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

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为你做的,没有任何技巧或魔法。

答案 1 :(得分:0)

我通过在项目中添加一个新的.cpp文件来解决这个问题,该文件由Xcode自动链接到相应的.hpp文件。