PDA

Tam Sürümünü Görmek İçin : illegal pure syntax, must be '= 0'


ankakusu
15/08/2007, 23:14
microsoft visual cpp'da bir sorun yasiyorum.
kendim

const int degisken1 = 10;

diye bir degisken yarattim. ama buna hata veriyor.


error C2258: illegal pure syntax, must be '= 0'
error C2252: 'students' : pure specifier can only be specified for functions
error C2258: illegal pure syntax, must be '= 0'
error C2252: 'tests' : pure specifier can only be specified for functions

class C1
{
public:

const int degisken1 = 10;

C1();
~C1();

};

yardim ederseniz sevinirim...


golgepapaz
15/08/2007, 23:22
class in icinde sadece static const integral degiskenleri ilklendirebilirsin..
constructor icinde ilklendirmen gerekiyor, bu arada bir an once derleyicini degistirmeni tavsiye ederim. tamamen aptalca bir hata veriyor;

acehreli
15/08/2007, 23:46
MS Visual C++'in eski surumlerinin bilinen bir yanlisi o. Yani static olsa da sinif icinde ilklenemiyordu. (Galiba... :) )

ankakusu, sunun calismasi lazim:

class C1
{
public:

static const int degisken1;

C1();
~C1();
};

const int C1::degisken1 = 10;


Ali

ankakusu
16/08/2007, 00:32
Ali,

evet dediğin gibi yaptığımda çalıştı...

teşekkür ederim...

kolay gelsin...

ankakusu
16/08/2007, 00:53
bir şey daha var aslında ben aynı programı derlemeye
çalışırken bir pencere çıkıyor ve pencerede şunlar yazıyor:


'c:/program files/Microsoft Visual Studio/work/C1/C1.cpp'
cannot save file. The file may be in use by another application diyo.

Bu ne demek? başka bir program kullanmıyor ki bunu...:garip:

Sabahi
16/08/2007, 06:34
Derleme yaptiginizda ayni programin onceden derlediginiz bir nushasi calisir durumda mi? Eger oyle ise tekrar derlemeden once programi sonlandirmaniz lazim.
Bazi durumlarda sonlandirdigimizi zannettigimiz programlar arka planda calisiyor olabilir. Task managerden kontrol etmenizde fayda var.

quasimodo
20/08/2007, 21:05
class in icinde ilk degeri sadece const static int turune verebiliyoruz diye birsey hatirliyorum? Dogru mu ?

acehreli
20/08/2007, 21:53
Evet ama yalnizca int degil, butun sayi turleri olabilir.

Ali

golgepapaz
20/08/2007, 22:11
Evet ama yalnizca int degil, butun sayi turleri olabilir.

Ali

integral olması gerekiyor. float double illegal....

quasimodo
22/08/2007, 00:51
Iste bende oyle biliyordum sadece int turu icin ... kafam karisti simdi ama?

acehreli
22/08/2007, 22:14
golgepapaz'in soyledigi gibi 'integral type' olmasi gerekiyor. Ama int'ten baska 'integral type'lar da var: char, bool, short, long.

Ali