繁体   English   中英

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

[英]Including header files (including themselves)

可以说我有3个班级。 1个基类和两个派生类。 如果我将这3个文件放在单独的头文件中,如何正确地将它们全部包含在内,以便它们彼此看到? 我会发布一些我发现的简单示例代码:

Polygon.h

// Base class


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

triangle.h

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

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

我知道我需要什么,我只是不知道如何正确安排它们才能干净地进行此工作,谢谢!

很明显,您的RectangleTriangle类要求在它们之前定义Polygon ,因此顺序应为:

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

后两个可以以任何顺序排列,因为它们彼此不依赖。

编辑:

为了阐明其工作原理,当您编写#include "file.h" ,文件file.h的内容被简单地复制到包含行的位置。 因此,现在要正确排序,只需考虑一下在main.cpp文件本身中定义所有类时将保持什么顺序,这就是头文件的顺序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM