C++ Sınıf Sorunu
-
c++ sınıf içinde void iste(int ea, int sa, int so) { cout<<"Bolumuz 1 Esit Agirlik 2 Sayisal 3 Sozel : "; cin>>bolum; if (bolum==1) {ea=ea+1;} else if (bolum==2) sa=sa+1; else if (bolum==3) {so=so+1;} } burda esit agırlık seçildiginde eşit agırlık sayısını 1 arttır falan dedim. ama main fonksiyonuna ea, sa,so yu çağıramıyorum. main fonksiyonun içinde tanımlamalısın diyo. onu nasıl ayarlıycam ?
-
Özel (private) veri elemanlarını main fonksiyonu içinde direkt olarak kullanamassın. Bunlara erişmek için erişim fonksiyonu(accessor function) yaratmalısın. Eğer değerini değiştirmek istiyorsan bir mutator function kullan ( türkçesini bilmiyorum).
Örnek kod:
class A{
private:
int b;
public:
...
int accesor_func ( void ) const {return b}
int mutator_func ( void ) {b++;}
...
}
...
int main(void){
A deneme; // bir yapıcı fonksiyon ( constructor function ) oluşturduğumuzu farzedelim
cout<<A.accessor_func(); // b'nin değerini ekrana yazdırır
A.mutator_func(); // b'nin değerini bir arttırır
return 0;
}
-
pointer kullanman lazım tek yapacağın fonksiyonun içindeki değişkenlerin başına *koymak ve main den çağırırken başına & koymak
void iste(int *ea, int *sa, int *so)
{
cout<<"Bolumuz 1 Esit Agirlik 2 Sayisal 3 Sozel : "; cin>>bolum;
if (bolum==1)
{*ea=*ea+1;}
else if (bolum==2)
*sa=*sa+1;
else if (bolum==3)
{*so=*so+1;} }
mainden fonksiyonu çağırırkende iste(&ea,&sa,&so);