我有一個基類Base
。
從它派生的兩個類:DerivedA
和DerivedB
。在這兩個類的頭文件中,我包含了Base.h
。
然後,在我的source.cpp
我定義我的main
,如果我只包括DerivedA.h
,它工作正常。如果我只包括DerivedB.h
它也可以正常工作。問題是我不能包括兩個。
每當我包括,編譯器生成一堆錯誤像C++包含兩個派生自相同基類的類
- 左「.debit」必須有類/結構/聯合
- ‘爲getBalance’:不是‘的CheckingAccount’ 成員
我想問題是,當我包括兩個頭,Base.h
包括兩次。我應該如何包含這些頭文件?
*注意:*'#pragma once'被很多編譯器支持,但它不是標準的C++。替代版本(「include guard」)適用於每個C++編譯器。 – dyp
你的意思是「*你可以告訴編譯器只包含文件,如果宏是**不是**已經預先定義*」? – 2013-10-10 03:49:09
另請注意:#pragma曾經很多,比包括大型項目的守衛要快得多 –