C++ 包括头文件(包括头文件本身)

C++ 包括头文件(包括头文件本身),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

假设我有三节课。一个基类和两个派生类。如果我将这3个文件放在单独的头文件中,如何正确地包含它们,使它们彼此都能看到?我将发布一些我发现的简单示例代码:

多边形.h

// 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它就像所有东西一样,从将所有东西放在一个全局头文件中,到将三角形和矩形放在多边形中,再到将多边形包含在主文件中,但无论发生什么,我都会得到一个“包含自身错误”我知道有一种更有效的方法来做好这件事谢谢!老实说,我以前很愚蠢,包括所有的事情,现在我知道再次感谢了。是的,在这里接受问题是一种很好的做法。你可以通过点击答案左边的票子来做到这一点。