class kod

AYKANUS
22-11-2008, 23:35   |  #1  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
329 mesaj
Kayıt Tarihi:Kayıt: Nis 2007

#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <stdio.h>
using namespace std;

//------------------------------------------------------
class memur
{
private :
       char  memur_adi;
       char  dogum_yeri;
       char  ana_adi;
       char  baba_adi;
       int   dogum_tarihi;
       float maasi;
public:
      
     char   katar(char mad,char dyr,char ani,char bab);
     double mate(int dog,float mas);
     int  goster();

};

//--------------------------------------------------------

char memur::katar(char mad,char dyr,char ani,char bab)
{
       memur_adi = mad;
       dogum_yeri = dyr;
       ana_adi = ani;
       baba_adi = bab;


}


//-----------------------------------------------

double memur::mate(int dog,float mas)
{
      
       dogum_tarihi = dog;
       maasi = mas;


}

//-----------------------------------------------

int memur::goster()
{
       cout<<"Memurun adi : "<<memur_adi<<"\n"
       <<"Ana adi         : "<<ana_adi<<"\n"
       <<"Baba adi        : "<<baba_adi<<"\n"
       <<"Dogum yeri      : "<<dogum_yeri<<"\n"
       <<"Dogum tarihi    : "<<dogum_tarihi<<"\n"
       <<"Maassi          : "<<maasi<<"\n";
}
  


//-----------------------------------------------

int main(){
   
    memur mem;
   

    mem.memur_adi.goster("mustafa");
    mem.dogum_yeri.goster("ankara");
    mem.ana_adi.goster("sükran");
    mem.baba_adi.goster("ataman");
    mem.dogum_tarihi.goster(1982);
    mem.maasi.goster(500);
    goster();


}


bu kod parçası hata veriyor çözemedim

Son Düzenleme: AYKANUS ~ 22 Kasım 2008 23:38
panda34
23-11-2008, 00:17   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
2,344 mesaj
Kayıt Tarihi:Kayıt: Ara 2007

Set ve Get fonksiyonlarını yazmamışsınız , private ve protected değişkenlerde gerekli .
Class'ın üye fonksiyonları dışında
kimse private değişkenleri adı ile çağırıp kullanamaz .
mesela Memur::setMemurAdi("Ahmet"); fonksiyonu ile
memurun adı atanır .
Memur::getMemurAdi(); ile de memurun adı okunur ...
Bu C++'ın kitapları mevcut oralarda daha detaylı bilgi mevcut .

Ayrıca mem.memur_adi.goster("mustafa"); bunun çalışması için "this" pointer gerekir .
Cascaded function calls(İçiçe fonksiyon çağırma) bu olayın adı ...
private değişkenler ile yine çalışmaz bu , ve nesneler böyle kullanılmaz !!!

Kapalı Hesap (79876)
23-11-2008, 13:15   |  #3  
Kapalı Hesap
Teşekkür Sayısı: 0
1,252 mesaj
Kayıt Tarihi:Kayıt: Tem 2008
mengu88
Set ve Get fonksiyonlarını yazmamışsınız , private ve protected değişkenlerde gerekli .
Class'ın üye fonksiyonları dışında
kimse private değişkenleri adı ile çağırıp kullanamaz .
mesela Memur::setMemurAdi("Ahmet"); fonksiyonu ile
memurun adı atanır .
Memur::getMemurAdi(); ile de memurun adı okunur ...
Bu C++'ın kitapları mevcut oralarda daha detaylı bilgi mevcut .

Ayrıca mem.memur_adi.goster("mustafa"); bunun çalışması için "this" pointer gerekir .
Cascaded function calls(İçiçe fonksiyon çağırma) bu olayın adı ...
private değişkenler ile yine çalışmaz bu , ve nesneler böyle kullanılmaz !!!

Doğru söylüyor.

Clasların kullanımı hakkında bir ornek buldum.

AYKANUS
23-11-2008, 19:04   |  #4  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
329 mesaj
Kayıt Tarihi:Kayıt: Nis 2007

sınıfın her üyesi için ayrı ayrı ulaşım fonksiyonu yazmakmı gerekiyor

panda34
23-11-2008, 20:03   |  #5  
Yıllanmış Üye
Teşekkür Sayısı: 0
2,344 mesaj
Kayıt Tarihi:Kayıt: Ara 2007
571.1919
sınıfın her üyesi için ayrı ayrı ulaşım fonksiyonu yazmakmı
Evet , C++'ta tembelliğe yer yok ...

AYKANUS
24-11-2008, 00:36   |  #6  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
329 mesaj
Kayıt Tarihi:Kayıt: Nis 2007

#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <stdio.h>
using namespace std;

class memur
{
   private:   
   string ana_adi;
   string baba_adi;
   string dogum_yeri;
   int  dogum_tarihi;
   int  maasi;
   
   
   public:
   void ulas_ana_adi(char ana[10]);   
   void ulas_baba_adi(char bab[10]);   
   void ulas_dogum_yeri(char dy[10]);
   void ulas_dogum_tarihi(int tr);   
   void ulas_maasi(int maas);        
   
   
   double goster_ani();   
   double goster_babi();   
   double goster_yeri();   
   double goster_tarihi();   
   double goster_maasi();
};

//******************************************************

  void memur::ulas_ana_adi(char ana[10])
   {     ana_adi = ana;        }
   
   
  void memur::ulas_baba_adi(char bab[10])
   {     baba_adi = bab;       }   
   
   
  void memur::ulas_dogum_yeri(char dy[10])
   {    dogum_yeri = dy;       }
   
   
  void memur::ulas_dogum_tarihi(int tr)
   {    dogum_tarihi = tr;     }
      
  void memur::ulas_maasi(int maas)
   {    maasi = maas;          }
  

//*************************************************


   double memur::goster_ani()
   {
   cout<<"Memurun Ana adi.      : "<<ana_adi<<"\n";      
   
   return 0;
   }
  
     
   double memur::goster_babi()
   {
   cout<<"Memurun baba adi.     : "<<baba_adi<<"\n";
   
   return 0;
   }   

   
   double memur::goster_yeri()
   {
   cout<<"Memurun dogum yeri.   : "<<dogum_yeri<<"\n";
  
   return 0;
   }   

   double memur::goster_tarihi()
   {
   cout<<"Memurun dogum tarihi. : "<<dogum_tarihi<<"\n";
   
   return 0;
   }
   

   double memur::goster_maasi()
   {
   cout<<"Memurun maasi.        : "<<maasi<<"\n";
   return 0;
   }
   

//*******************************************************

   int main()
   {
   
   memur mem;
   
   
   mem.ulas_ana_adi("Sukran");
   mem.ulas_baba_adi("Suleymen");
   mem.ulas_dogum_yeri("Anakara");
   mem.ulas_dogum_tarihi(1982);
   mem.ulas_maasi(500);
   
  
   return 0;
   
   }


bunlar doğru galiba ama şimdide pencere açılıp hemen kapanıyor.

panda34
24-11-2008, 08:09   |  #7  
Yıllanmış Üye
Teşekkür Sayısı: 0
2,344 mesaj
Kayıt Tarihi:Kayıt: Ara 2007
571.1919
bunlar doğru galiba ama şimdide pencere açılıp hemen kapanıyor.
Programda hata yoksa çalışıyordur herhalde ,
Pencerenin hemen kapanmaması içinde , main fonksiyonun sonuna

return 0; dan önce

system("PAUSE"); yazın

yani böyle olacak

system("PAUSE");
return 0;

AYKANUS
25-11-2008, 00:24   |  #8  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
329 mesaj
Kayıt Tarihi:Kayıt: Nis 2007

en sonunda başardım char *bab  işaretçi koymak gerekiyormuş

#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <stdio.h>
using namespace std;

class memur
{
private:
char s_hayvan[10];
char m_adi[10];
char ana_adi[10];
char baba_adi[10];
char dogum_yeri[10];
int dogum_tarihi;
float maasi;


public:
memur(char *md,char* ani,char* bab,char* dy,char *sv,int tr,float maas);
int goster_tarihi();
float goster_maasi();
void  goster();
void goster2();
~memur(){}
};

//******************************************************
memur::memur(char *md,char *ani,char *bab,char *dy,char *sv,int tr,float maas)
{
  strcpy(m_adi,md);
  strcpy(ana_adi,ani);
  strcpy(baba_adi,bab);
  strcpy(dogum_yeri,dy);
  strcpy(s_hayvan,sv);
  dogum_tarihi = tr;
  maasi = maas;
}


//*************************************************

int memur::goster_tarihi()
{
return dogum_tarihi;
}

float memur::goster_maasi()
{
return maasi;
}

void memur::goster()
{   
     cout<<"\t1.Memurun adi.............:"<<m_adi<<"\n";
     cout<<"\t1.Memurun ana adi.........:"<<ana_adi<<"\n";
     cout<<"\t1.Memurun baba adi........:"<<baba_adi<<"\n";
     cout<<"\t1.Memurun dogum yeri......:"<<dogum_yeri<<"\n";
     cout<<"\t1.Memurun dogum tarihi....:"<<dogum_tarihi<<"\n";
     cout<<"\t1.Memurun maasi...........:"<<maasi<<"\n";
     cout<<"\tEnsevdigi hayvan..........:"<<s_hayvan<<"\n";
     cout<<"\n\n\n";
     
}

void memur::goster2()
{
     
     
     cout<<"\t\t2.Memurun adi.............:"<<m_adi<<"\n";
     cout<<"\t\t2.Memurun ana adi.........:"<<ana_adi<<"\n";
     cout<<"\t\t2.Memurun baba adi........:"<<baba_adi<<"\n";
     cout<<"\t\t2.Memurun dogum yeri......:"<<dogum_yeri<<"\n";
     cout<<"\t\t2.Memurun dogum tarihi....:"<<dogum_tarihi<<"\n";
     cout<<"\t\t2.Memurun maasi...........:"<<maasi<<"\n";
     cout<<"\t\tEnsevdigi hayvan........:"<<s_hayvan<<"\n";     
     cout<<"\n\n\n";
}


//*******************************************************

int main()
{
memur degerler("ATAKAN","SUKRAN","ATAMAN","TURKISTAN","DINAZOR",1982,525.655);
degerler.goster();


memur degerler2("ATALAY","PERIHAN","ALPARSLAN","TURKISTAN","ARSLAN",1970,690.32);

degerler2.goster2();


system("pause");

}

Son Düzenleme: AYKANUS ~ 25 Kasım 2008 00:28