[英]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.