C++ 包括头文件(包括头文件本身)
假设我有三节课。一个基类和两个派生类。如果我将这3个文件放在单独的头文件中,如何正确地包含它们,使它们彼此都能看到?我将发布一些我发现的简单示例代码: 多边形.hC++ 包括头文件(包括头文件本身),c++,class,C++,Class,假设我有三节课。一个基类和两个派生类。如果我将这3个文件放在单独的头文件中,如何正确地包含它们,使它们彼此都能看到?我将发布一些我发现的简单示例代码: 多边形.h // Base class class Polygon { protected: int width, height; public: void set_values (int a, int b) { width=a; height=b;} }; 三角形 class Triangle: p
// Base class
class Polygon
{
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b;}
};
三角形
class Triangle: public Polygon
{
public:
int area ()
{ return width * height / 2; }
};
矩形.h
class Rectangle: public Polygon
{
public:
int area ()
{ return width * height; }
};
main.ccp
int main ()
{
Rectangle rect;
Triangle trgl;
rect.set_values (4,5);
trgl.set_values (4,5);
cout << rect.area() << '\n';
cout << trgl.area() << '\n';
cin.get();
return 0;
}
int main()
{
矩形矩形;
三角形trgl;
rect.set_值(4,5);
trgl.set_值(4,5);
您的矩形
和三角形
类需要在它们之前定义多边形
,因此顺序应该是:
#include "Polygon.h"
#include "Rectangle.h"
#include "Triangle.h"
最后两个可以是任意顺序,因为它们彼此不依赖
编辑:
为了阐明为什么这样做,在编写#时,请包含“file.h”
,文件file.h
的内容只是简单地复制到include行的位置。因此,现在要正确地确定顺序,只需考虑在main.cpp
文件本身中定义所有类时将保持什么顺序,这就是头文件的顺序。您尝试了哪些组合?@tapanand它就像所有东西一样,从将所有东西放在一个全局头文件中,到将三角形和矩形放在多边形中,再到将多边形包含在主文件中,但无论发生什么,我都会得到一个“包含自身错误”我知道有一种更有效的方法来做好这件事谢谢!老实说,我以前很愚蠢,包括所有的事情,现在我知道再次感谢了。是的,在这里接受问题是一种很好的做法。你可以通过点击答案左边的票子来做到这一点。