[英]Workaround for ifdef / ifndef
我有一個A
類,以及兩個繼承自A
類B
和C
除了A
的方法外,每個類都提供不同的東西,因此,我想將它們放在兩個不同的文件中b.hpp
和c.hpp
,因為它們是帶有內聯函數的模板。
我也有一個User
類,同時使用B
和C
類。 在user.cpp
,我應該接近:
# include "b.hpp"
# include "c.hpp"
class User{
...;
};
這將引發編譯器重新定義錯誤,因為我將B
和C
都保留在bc.hpp
。
這里的關注點是美學上的問題,而不是編程錯誤:我只是在小型應用程序中使用ifdef / ifndef
指令找不到很好的選擇 -在我看來,它們始終像IDE的解決方案,適用於管理過多模塊的人員,對於那些甚至不了解這些模塊的人了解指令。
是否有任何解決方法( 甚至是非標准方法,但至少是明智的方法),還是我必須堅持在同一文件中使用兩個不同的類並使用ifdef / ifndef
?
如果您在頭文件中表示不,則沒有一種可移植的好方法。 標准做法是將所有頭文件的格式保持為-
#ifndef MYHEADER_HPP
#define MYHEADER_HPP
// ... content
#endif
任何其他方式都是非標准的,不是真正的 C ++。
您始終可以使用#pragma once
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.