类(CPP文件和H文件)在C ++中
class (cpp file & h file) in c++
创建和定义类(在" h file"中)。除了" h file"(属于类)之外,我如何决定创建(或不适合类)" CPP文件"(仅适用于类)?
这是让您前进的一个小例子。
这是Foo的标头文件。让我们称其为" foo.h"
#pragma once
#ifndef FOO_H
#define FOO_H
class Foo{
public:
void function();
protected:
private:
};
#endif
这是Foo的源文件。让我们称其为" foo.cpp"
#include "foo.h"
void Foo::function(){
// ... implement ...
return;
}
将它们编译在一起,我们可以创建一个对象文件。我们将其称为" foo.o"您可以在程序中使用" foo.o"的程序中的课程。
示例:
#include "foo.h"
int main(){
Foo foo;
foo.function();
return 0;
}
h文件是一个描述符文件,描述了您的函数/类的签名,以便其他CPP文件中的其他类可以使用它。
您需要将H文件视为合同。您正在宣布义务。
稍后,当您决定实施CPP时,您正在履行义务。
其他类/CPP文件可以单独依靠您的义务,假设您还将在CPP中实施义务。
例如:
- 您创建一个.h文件" myclassa.h",并用一个名为myclassa.sayhello()的成员方法声明一个名为myclassa的类
- 您将myClassa.h在您创建myclassb.cpp的另一堂课中,这样myclassb知道myClassa有一种称为sayhello()的方法,它可以称为。
- 如果您不包含myClassa.h,并且尝试在myClassB.cpp中调用myClassa.sayhello(),则您会从编译器中遇到错误,因为MyClassB并不"知道" MyClassa。 。
- 如果您确实包含了H文件,但没有打扰在myClassa.cpp中实际创建和实现myClassa,则您将遇到汇编错误,因为找不到实施。
最好的做法是分开标题和实现文件,以便您定义标题文件中的类。H并在.cpp文件中实现,这将帮助您跟踪和调试错误并显示一个干净的代码
只需在模板类中注意,必须在单独的标头文件中定义它,以使您的代码结构良好,并通过将模板与普通类分开
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 命名空间中具有.h和.cpp文件的类
- 为什么我的主文件.cpp不打印头文件中的任何内容
- 生成文件错误 - 找不到文件 - *.cpp
- 如何在文件.cpp gtkmm中声明小部件
- 没有实现文件(.cpp)的派生类
- 如何使用"CMakeLists.txt"中的add_library将整个文件(.cpp,.h等)包含在目录中
- 如何在Linux / Windows操作系统上使用文件*.cpp一步编译下面的代码
- 关于 Linux .so 文件无法链接到主文件.cpp文件
- 文件.cpp从Windows到Linux
- Ubuntu C++ 编译器错误: g++: 错误: 文件.cpp: 没有这样的文件或目录
- 如何将文件.cpp编译为本机编译
- 使用模板类时,似乎无法包含除 main 以外的任何 cpp 文件.cpp
- 无法编译C++文件.cpp。C++98模式
- 为什么C++头文件不需要包含实现文件 (.cpp)
- 如何访问位于独立文件(.cpp)中的非成员函数
- 如何在Visual Studio Code中通过键盘快捷键切换头文件/cpp文件
- 如何将数据从stringstream写入文件(CPP)
- 为什么filestream不把空白写入文件cpp ?