[英]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;
}
我知道我需要什么,我只是不知道如何正确安排它们才能干净地进行此工作,谢谢!
很明显,您的Rectangle
和Triangle
类要求在它们之前定义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.