Boyutu extern const olarak tanımlanmış bir dizi başlatırken bir sorunum var. Küresel değişkenlerin üstbilgi dosyalarında extern olarak bildirilmesi kuralını her zaman izledim ve değişken tanımlama hatalarını önlemek için uygulama dosyalarından birinde karşılık gelen tanımların olması gerekir. Bu yaklaşım, boyutu dışsal bir kurgu olarak tanımlanmış bir diziyi başlatmam gerekene kadar iyi çalıştı. Sabit bir ifadenin beklendiği konusunda bir hata alıyorum. Ancak, const değişkenine bir değer atamaya çalışırsam, derleyici, bir değerin sabit bir değişkene atanamadığından şikayet eder. Bu aslında derleyicinin değişkeni sabit olarak gördüğünü kanıtlar. Aynı boyutta bir dizi bildirmeye çalıştığımda neden bir hata bildirilir?Boyutu extern const olarak bildirilmiş bir dizi bildirme
#define kullanmadan bundan kaçınmanın bir yolu var mı? Bu hatanın sebebini de bilmek isterim.
Package.h:
#ifndef PACKAGE_H
#define PACKAGE_H
extern const int SIZE;
#endif
Package.cpp:
#include "Package.h"
const int SIZE = 10;
foo.cpp:
#include "Package.h"
int main()
{
// SIZE = 5; // error - cannot assign value to a constant variable
// int Array[SIZE]; // error - constant expression expected
return 0;
}
Kodu biçimlendirmek için dört boşluk girintilendirebilirsiniz. – Thomas