创建并定义类后(在“h文件”中)。 除了“h文件”(属于该类)之外,我该如何决定创建(或不是)“cpp文件”(仅适用于课程)?C++中的类(cpp文件&h文件)
回答
最好的做法是将头文件和实现文件分开,以便在头文件.h中定义类并在.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;
}
如果我有两个类,其中一人有一个矩阵,我想,其他类将有一个访问从矩阵中读取数据。 我如何链接它们? – YkI
@YkI你可以让他们的“朋友”,或者你可以使用观测器和变压器功能的两个类之间的接口。我会推荐后者。所以具有矩阵的类需要成员函数(也称为方法),其函数返回其他类所需的信息。这可能是一个函数,其返回类型是整个矩阵,或者可能是一个函数,它接受一个索引并返回一个特定的值。 *这些将是观察员职能。另一个类需要成员函数(也称为方法)接受矩阵类返回的数据。 –
的.h文件是一个描述符文件,描述你的函数/类的签名,让其他班其他cpp文件可以使用它。
您需要将h文件视为合同。你宣布了一项义务。
稍后,当您决定实施cpp时,您就履行了义务。
其他类/ cpp文件可以单独依靠您的义务,假设您还将在cpp中执行该义务。
例如:
- 创建一个h文件“myClassA.h”和声明一个称为myClassA类()称为myClassA.SayHello成员方法
- 您包括myClassA.h在另一类创建myClassB.cpp,这样myClassB就知道myClassA有一个名为SayHello()的方法,它可以调用它。
- 如果您不包含myClassA.h,并且您尝试在myClassB.cpp中调用myClassA.SayHello(),您将从编译器中得到一个错误,因为myClassB不能“知道”myClassA。
- 如果你确实包含了h文件,但是并没有打算在myClassA.cpp中实际创建和实现myClassA,那么你会得到一个编译错误,因为没有找到实现。
这里有很多管理词汇。复制他们从一个过顶的面向对象的书? :P –
为了记录在案,编程术语不是“合同”或“义务”,但_API_。 –
你是对的,我只是试着用通俗的话来解释它。 虽然我觉得评论有趣, 我确实认为您的评论没有建设性,并且与专用于回答问题的网站无关...... – eran
- 1. CPP | .h文件(C++)
- 2. C++ - 从.h文件获取.cpp文件中的类变量
- 3. 的Visual C++,组织的.h和.cpp文件中的文件夹
- 4. C++ .h&.cpp文件 - 原型错误
- 5. C++ .h和.cpp文件分开
- 6. 从.h文件生成.cpp源文件
- 7. #include .h或.cpp文件?
- 8. 的.h文件包含在头文件和cpp文件
- 9. (C++).h文件中的整个类?
- 10. 模板类实现中单独的.h和.cpp文件
- 11. 仅在类型为* .cpp和* .h的文件中计数行
- 12. 在QT中如何从.ui文件制作.cpp和.h文件?
- 13. 我应该在.cpp或.h文件中包含头文件?
- 14. VS 2012:排序.CPP/.h文件
- 15. 从.ui文件生成.h和.cpp
- 16. 我可以在c#项目中添加.h和.cpp文件吗?
- 17. 链接共享.h文件的2个cpp文件
- 18. 从C/cpp文件
- 19. C++如何从一个类的cpp文件中创建一个.H
- 20. C++创建在单独的.cpp和.h文件
- 21. 给C++添加第二个.h/cpp文件的麻烦
- 22. 使用C++库,正值的.cpp和.h文件
- 23. Linux操作系统Ubuntu C++的.h和.cpp文件
- 24. QT创建者:为.cpp&.h文件添加文件夹
- 25. 图h文件和cpp文件即时得到许多错误
- 26. 所有.cpp文件都依赖于两个.h文件?
- 27. 为什么CPP文件名必须与H文件名相符?
- 28. 为这个.cpp文件创建一个h文件
- 29. 从源文件(.cpp和.h)生成.ui文件
- 30. 从.h文件创建.cpp文件visual studio
如果成员函数不是微不足道的,那么将它们放在单独的源文件中可能是一个好主意。例外是模板类必须在头文件中完全定义。 –