我想知道如何在C ++中包含文件......我正在看很多不同的东西而无法理解它。我只想包含其他功能或方法,或者你打电话给它。
我知道你需要像#include“filename.cpp”;但是我不知道如何使用来自filename.cpp或.h或w / e的东西来调用它。
谢谢,如果你能解释一下,我知道java的顺便说一下。 (它似乎与java完全不同。)
答案 0 :(得分:2)
包含文件用于描述应用程序的其他元素要使用的接口或类。实质上,类的描述包含在头文件(.h)中。该类的实现包含在源(.cpp)文件中。例如:
您的头文件如下所示:
// MyClass.h
class MyClass {
public:
MyClass();
void Method1();
...
};
您的实施文件如下所示:
// MyClass.cpp
MyClass::MyClass() {
// implementation details
}
void MyClass::Method1() {
// implementation details
}
现在任何需要使用MyClass的人都会以下列方式包含MyClass.h:
#include "MyClass.h"
希望这有帮助。
答案 1 :(得分:2)
通常,在头文件中声明和源文件中的实现。虽然在模板的情况下存在例外情况。请记住,只编译源文件。因此,编译器必须知道源文件中存在的符号。现在举个例子 -
<强> foo.h中强>
struct foo
{
int number ;
foo( int x );
};
<强> Foo.cpp中强>
现在,有一种方法在struct foo
中未实现,即构造函数。如果您需要在单独的源文件中实现它,则需要#include "foo.h"
。有了它,如果你继续实现它的方法,编译器不知道什么是“foo”。
#include "foo.h"
foo::foo( int x )
{
number = x; // This can be achieved through initializer lists too.
}
在编译器阶段之前,预处理器会将foo.h
的内容复制到foo.cpp
。预处理后,原始foo.cpp
变为 -
struct foo
{
int number ;
foo( int x );
};
foo::foo( int x )
{
number = x; // This can be achieved through initializer lists too.
}
现在,源文件中定义/使用的每个方法/符号都是编译器所知道的。通常,x.h
的相应源文件将为x.cpp
。还要知道,每个源文件都会通过这些阶段来提供最终的可执行文件。 (预处理器 - &gt;编译器 - &gt;链接器)。希望它在某种程度上有所帮助。
答案 2 :(得分:1)
约定是仅包含标题(* .h或* .hpp)文件。这些文件通常用于定义类型和宏等。
你如何使用它真的取决于你的应用程序在做什么 - 你是相当模糊的。例如,如果您定义一个类,则通常在头文件中声明该类及其成员。方法的实际代码可以放在* .cpp文件中。
只要#include头文件,编译器就会知道这些方法需要什么语法。
答案 3 :(得分:-1)
在c ++中包含文件在标准库文件和程序员定义的文件之间有所不同。
对于我们编写的标准库:
#include <FileName>
对于我们编写的程序员定义的文件:
#include "FileDestination\FileName.extension"
请注意,没有分号。
如果您要使用的东西在命名空间内,您应该提到命名空间或使用它,使用命名空间写:
using namespace NAMESPACE_NAME;
提到命名空间而不使用它很容易,比如写:
std::cout << "Hello, World!\n";
希望这很有用!对不起我的英语不好。