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

时间:2015-01-02 04:24:08

标签: c++ class

假设我有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;
}

我知道我需要什么包括我只是不知道如何妥善安排它们以便干净利落地工作,谢谢!

1 个答案:

答案 0 :(得分:2)

很明显,您的RectangleTriangle类需要在它们之前定义Polygon,因此订单应为:

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

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

修改

为了阐明其工作原理,当您编写#include "file.h"时,文件file.h的内容只是复制到包含行的位置。所以,现在为了使订单正确,只要想一下在main.cpp文件本身定义所有类时你将保留的顺序,这就是头文件的顺序应该是什么。