![]() |
1
1
不能将类与可执行文件隔离。要共享这样的功能,您必须构建库而不是应用程序。要理解为什么在构建项目时找不到一个保存类的独立文件,您必须了解构建是如何工作的。
C++应用程序的标准结构可以看到跨翻译单元(.cpp文件)的功能划分。这些文件包含函数的定义。为了从其他翻译单元使用这些函数,函数声明需要对这些单元可见。因为我们不想
圆圈h:
圆圈cpp公司
主要的cpp公司
构建项目时,编译器将为每个翻译单元输出一个目标文件,例如Circle。o和main。o、 因为编译器一次只能在一个翻译单元(cpp)上工作,所以它们不是自包含的。例如,在main中。o参考
因此,在标准C++应用程序中,没有“等效于cpp文件”。中间产物。o不打算在其他项目和MyProject中共享和包含。exe只是一个可执行文件。 您实际上需要做的是构建一个库。这是一种非独立应用程序的可执行文件形式。那么链接器的最终输出将是。dll。库。左右。a(取决于平台和链接方法),它将以可执行(而非源)形式保存所有函数实现。然后,您可以将库与您的一起分发。h文件,并让人们链接到该文件。 同样,没有“等效cpp”文件。生成的库将包含您指定为输入的所有转换单元,因为生成过程与上述非常相似。不同之处在于,输出将不是一个可执行的应用程序,而是一个库,根据需要,将从另一个链接到此库的应用程序中调用函数。 建立图书馆没有统一的方法。当您使用IDE时,它可能会成为创建新项目时的一个选项。 |
![]() |
2
1
它是实现中声明的函数的文件。h文件。在您的情况下,它是“Area.cpp”。 |
![]() |
3
0
实现源代码为
如果要分发区域库,可以创建一个库(
一般规则是任何源文件
请注意,您已经非常清楚
|
![]() |
apetrai · 我应该如何假设算法使用哪种迭代器类别? 2 年前 |
![]() |
ridiculous_fish · std::是否保证短路? 2 年前 |
![]() |
Fabio · 在c中将指针赋给常数指针++ 2 年前 |
![]() |
johnco3 · 初始化固定C数组成员结构 6 年前 |
![]() |
mans · 为什么出现此错误:constexpr在此处无效 6 年前 |
![]() |
juztcode · 在C++中尝试捕获-创建了多少个对象 6 年前 |
![]() |
Steven Scott · 忽略元素的基于范围的for循环 6 年前 |