gpt4 book ai didi

C++ include .h 也包含同名的 .cpp 吗?

转载 作者:可可西里 更新时间:2023-11-01 18:37:22 24 4
gpt4 key购买 nike

我有包含 header.h 的 text.cpp 和包含 header.h 的 header.cpp。

header.cpp 也会被编译吗?我正在按照这里的指南进行操作,但我感到非常困惑。

此外,对于我所问的问题,正确的术语是什么?我知道我听起来像个白痴,我很抱歉,但我很无知。

哦,int main()在 test.cpp 中。

此外,如果 header.cpp 包含 <iostream> ,为什么我不能在 text.cpp 中使用 iostream 函数调用(如果它包含在内)?如果我包括 <iostream>在 text.cpp 中,它会被包含在程序中两次(换句话说,使其膨胀)吗?

最佳答案

您告诉编译器要编译哪些 C++ 文件。 #include 与它无关。

例如,如果您使用的是 g++:

g++ text.cpp // Doesn't compile header.cpp
g++ text.cpp header.cpp // Compiles both

(or, alternatively you can compile one file at a time and then link them)
g++ text.cpp -o text.o
g++ header.cpp -o header.o
g++ text.o header.o -o your-program

如果您使用 Visual Studio 并创建了一个项目,那么您创建的所有 C++ 文件都将自动编译。

如果您两者都不使用,请告诉我您的编译器名称,我可以告诉您确切的语法:)


现在,对于你的另一个问题:

Also, if header.cpp includes iostream, why can't I use iostream function calls in text.cpp if it is included? If I include iostream in text.cpp will it be included in the program twice (in other words, bloat it)?

#include 告诉编译器只需“复制您要包含的文件的所有内容,并将它们粘贴到#include 行所在的位置”。所以,理论上,你可以简单地用记事本打开iostream,在你的.cpp文件中全选,ctrl-c和ctrl-v它,最终效果将完全相同=)

所以是的,它需要包含在您希望使用它的每个 .cpp 文件中,并且它不会“膨胀”您的程序:它只包含类定义、外部函数等。

哦,这是不言而喻的,但 C++ 是一种非常非常广泛和困难的编程语言,通过书本学习它比通过指南学习它要好得多。如果您不想花钱,一本不错的免费(可下载)C++ 书籍是 Thinking in C++, Bruce Eckel .否则如果你想买一个你可以找到一个很好的 list here .

关于C++ include .h 也包含同名的 .cpp 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2573561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com