2012-05-16 60 views
1

繼承的類我有一個類calendar以及從calendar包括基地的頭和主

我希望能夠創造主既類的對象繼承的類extendedCalendar,所以我包括他們的頭在main.cpp

#include "calendar.h" 
#include "extendedCalendar.h" 

的問題是,extendedCalendar.h在其頭部也有#include "calendar.h"所以編譯器給我一個錯誤:

'calendar' : 'class' type redefinition

我怎樣才能繞過這個?

回答

4

你需要在頭文件中使用include guard。

//extendedCalendar.h 
#ifndef EXTENDED_CALENDAR 
#define EXTENDED_CALENDAR 

//body of header 

#endif 

//calendar.h 
#ifndef CALENDAR 
#define CALENDAR 

//body of header 

#endif 

如果您使用MSVS,你可以使用

#pragma once 
+0

我應該包括它在main.cpp中? – Michael

+0

@Michael,不僅在標題中。請注意,'pragma'不是便攜式的。如果你在多個平臺上編譯,你應該使用include guard。 –

+0

你一直在回答我的問題,並給出了很好的答案。你應該開始接受捐款;) – Michael