可能重复:
C++ 中的内联函数
如果我在头文件中完全实现一个类,编译器会做什么?一个典型的例子如下:
class MyException
{
public:
explicit MyException(const char* file, int line) file(file), line(line) {};
const char* getFile() const { return file };
int getLine() const { return line };
private:
const char* const file;
const int line;
};
我的意图是使用这样的类:throw MyException(__FILE__, __LINE__)
.
我将此头文件包含在每个 .cpp 文件中。我想编译器会按定义的次数编译该类,并将(相同的)机器代码包含到它生成的每个目标文件中。现在,链接器会做什么?我尝试了一个更简单的例子(没有那些讨厌const
的),它编译得很好。
如果我在头文件中实现了一个三屏长的 C 函数,而不是一个简单的类,会发生什么?最后一个问题,我应该将我的示例拆分为 .h 和 .cpp 文件吗?