包括头文件(包括它们自己)

Including header files (including themselves)

本文关键字:自己 包括它 文件 包括头      更新时间:2023-10-16

>假设我有 3 个类。 1 个基类和 2 个派生类。 如果我把这 3 个放在单独的头文件中,如何正确地将它们全部包含,以便它们都相互查看?我发布了一些我发现的简单示例代码:

多边形.h

// Base class

class Polygon 
{
  protected:
    int width, height;
  public:
    void set_values (int a, int b)
      { width=a; height=b;}
 };

三角形.h

class Triangle: public Polygon 
{
  public:
    int area ()
      { return width * height / 2; }
};

矩形.h

class Rectangle: public Polygon 
{
  public:
    int area ()
      { return width * height; }
};

主.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;
}

我知道我需要什么,我只是不知道如何正确安排它们以使这项工作干净利落,谢谢!

很明显,您的Rectangle类和Triangle类需要在它们之前定义Polygon,因此顺序应该是:

#include "Polygon.h"
#include "Rectangle.h"
#include "Triangle.h"

最后两个可以按任何顺序排列,因为它们不相互依赖。

编辑:

为了澄清为什么这样做,当你写#include "file.h"时,文件file.h的内容只是简单地复制到包含行的位置。因此,现在要获得正确的顺序,只需考虑在定义main.cpp文件本身中的所有类时将保持什么顺序,这就是头文件的顺序。

相关文章: