假设我有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;
}
我知道我需要什么包括我只是不知道如何妥善安排它们以便干净利落地工作,谢谢!
答案 0 :(得分:2)
很明显,您的Rectangle
和Triangle
类需要在它们之前定义Polygon
,因此订单应为:
#include "Polygon.h"
#include "Rectangle.h"
#include "Triangle.h"
最后两个可以按任何顺序排列,因为它们不相互依赖。
修改强>
为了阐明其工作原理,当您编写#include "file.h"
时,文件file.h
的内容只是复制到包含行的位置。所以,现在为了使订单正确,只要想一下在main.cpp
文件本身定义所有类时你将保留的顺序,这就是头文件的顺序应该是什么。