Birkaç kaynak dosyada görünmesi için C ++ 'da bir sabit tanımlamak istiyorum. Bunu bir başlık dosyasında tanımlamanın aşağıdaki yollarını hayal edebiliyorum:
#define GLOBAL_CONST_VAR 0xFFint GLOBAL_CONST_VAR = 0xFF;- Değeri döndüren bazı işlevler (örneğin
int get_GLOBAL_CONST_VAR()) enum { GLOBAL_CONST_VAR = 0xFF; }const int GLOBAL_CONST_VAR = 0xFF;extern const int GLOBAL_CONST_VAR;ve tek bir kaynak dosyadaconst int GLOBAL_CONST_VAR = 0xFF;
Seçenek (1) - kesinlikle kullanmak isteyeceğiniz seçenek değil
Seçenek (2) - başlık dosyasını kullanarak her nesne dosyasındaki değişkenin örneğini tanımlama
Seçenek (3) - IMO çoğu durumda aşırı öldürüyor
Seçenek (4) - çoğu durumda, enum somut türü olmadığından iyi olmayabilir (C ++ 0X, türü tanımlama olasılığını ekleyecektir)
Bu yüzden çoğu durumda (5) ve (6) arasında seçim yapmam gerekiyor. Sorularım:
- (5) veya (6) neyi tercih edersiniz?
- Neden (5) tamam, (2) değil?