在主文件 C++ 中包含声明但不包含定义
Include declaration but not definition in main file C++
在C++中使用多个文件时,例如:main.cpp、definition.cpp,declaration.h
// declaration.h
int Myfunc();
//definition.cpp
#include "declaration.h"
int MyFunc() {return 5;};
// main.cpp
#include <iostream>
#include "declaration.h"
int main()
{
std::cout << Myfunc() << std::endl;
}
为什么我不需要将定义文件包含到主文件中?程序怎么知道[=的定义13=] 当我只包含声明时?
- 声明就像函数的签名,在编译时只需要签名(要传递什么变量以及函数将传递什么 return 以便您可以围绕它编写其他代码)。实际调用函数在 link 时间内解决。如果您将定义包含在头文件中,并且如果该头文件包含在多个源文件中,那么同一函数将有多个定义。
在C++中使用多个文件时,例如:main.cpp、definition.cpp,declaration.h
// declaration.h
int Myfunc();
//definition.cpp
#include "declaration.h"
int MyFunc() {return 5;};
// main.cpp
#include <iostream>
#include "declaration.h"
int main()
{
std::cout << Myfunc() << std::endl;
}
为什么我不需要将定义文件包含到主文件中?程序怎么知道[=的定义13=] 当我只包含声明时?
- 声明就像函数的签名,在编译时只需要签名(要传递什么变量以及函数将传递什么 return 以便您可以围绕它编写其他代码)。实际调用函数在 link 时间内解决。如果您将定义包含在头文件中,并且如果该头文件包含在多个源文件中,那么同一函数将有多个定义。