folder Tahribat.com Forumları
linefolder C - C++
linefolder C++ Sınıf Sorunu



C++ Sınıf Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    numanbaba
    numanbaba's avatar
    Kayıt Tarihi: 27/Mart/2011
    Erkek
    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 ?
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    x0r
    x0r's avatar
    Kayıt Tarihi: 12/Kasım/2009
    Erkek

    Ö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;

    }

     

     


    Let's climb the treeee...
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    seretide
    seretide's avatar
    Kayıt Tarihi: 14/Haziran/2010
    Erkek

    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);


    Saçma
Toplam Hit: 1211 Toplam Mesaj: 3