Wie sprech ich ne Char Klassenfuntion an



  • char* GetName(void);
    

    und

    void SetName(char* )
    
    void CArtikel::SetName(char* Name){strcpy(P_name,Name);}
    

    und

    char* CArtikel::GetName(void){return P_name;}
    

    dachte mit

    Tasche.SetName(Tasche);
    

    aber das kappt nich



  • zuwenig infos



  • ich will nur wissen wie ichdie Methoden

    char* GetName(void);
                  void SetName(char* );
    
    char* GetName(void);
                  void SetName(char* );
    

    benutzen kann... umd

    private: char m_name[32];
    

    anzusprechen...

    weil das mit

    Tache.SetName(Tache1);
    

    nicht klappt... Tasche ist ein Objekt der Klasse.



  • WENN setName statisch is, dann per:
    Tasche::setName()



  • ich stell mal alles rein vlt wirds dann klarrer..

    #include <cstdlib>
    #include <iostream>
    #include <conio.h>
    class CArtikel                          //BASIKLASSE
    {
          private: char m_name[32];
                   long m_inventnr;
                   double m_vkpreis;
                   double m_tax;
                   double m_gzuschlag;
          public: CArtikel(); 
                  CArtikel(long);         //Konstruktor
                  ~CArtikel();
                  char* GetName(void);
                  void SetName(char* );
                  long GetNr(void);
                  void SetNr(long);
                  double GetPreis(void);
                  void SetPreis(double);
                  double GetTax(void);
                  void SetTax(double);
                  double GetGZuschlag(void);
                  void SetGZuschlag(double);
    };
    class CGeraet:public CArtikel             //1.Verebung
    {
           private: double m_selbskosten;
           public: CGeraet(double,double);//Name,Inevntarnummer,Selbskosten,gzuschlag
                   void SetSelbstko(double);
                   double GetSelbstko(void);
    };
    class CMedium:public CArtikel           //2.Vererbung
    {
          private: double m_ekpreis;
          public: void SetEkp(double);
                  double GetEkp(void);
    };
    CArtikel::CArtikel(){}
    CArtikel::CArtikel(long n)
    {
    m_inventnr=n;
    }
    CArtikel::~CArtikel()
    {}
    void CArtikel::SetName(char* N){strcpy(m_name,N);} 
    void CArtikel::SetNr(long N){m_inventnr=N;}                                        
    void CArtikel::SetPreis(double P){m_vkpreis=P;}
    void CArtikel::SetTax(double T){m_tax=T;}
    void CArtikel::SetGZuschlag(double G){m_gzuschlag=G;}
    char* CArtikel::GetName(void){return m_name;}
    long CArtikel::GetNr(void){return m_inventnr;}
    double CArtikel::GetPreis(void){return m_vkpreis;}
    double CArtikel::GetTax(void){return m_tax;}
    double CArtikel::GetGZuschlag(void){return m_gzuschlag;}
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int M;
        CArtikel PC;
        PC.SetPreis(100);
        M=PC.GetNr();
        cout<<M;^
    

    hier will ich dann dem PC bsp den Namen PC2500+ geben.

    system("PAUSE");
        return EXIT_SUCCESS;
    }
    


  • ...
    
    int main(int argc, char *argv[])
    {
        int M;
        CArtikel PC;
        PC.SetPreis(100);
        M=PC.GetNr();
        cout<<M;
    
        PC.SetName("Blub");
        char* s = PC.GetName();
        cout << '\n' << s;
    
        return 0;
    }
    

    Caipi



  • habs jetzt so

    CArtikel PC();
        PC.SetName("Blub");
    

    übernommen aber der Complier meint request for Member `SetName`in`PCwich is non-class type ``Cartikel()()`,


  • Mod

    Nega schrieb:

    habs jetzt so

    CArtikel PC();
        PC.SetName("Blub");
    

    übernommen aber der Complier meint request for Member `SetName`in`PCwich is non-class type ``Cartikel()()`,

    wie oft eigentlich noch?

    CArtikel PC();
    

    deklariert eine funktion - wie dir der compiler auch richtig sagt.


Anmelden zum Antworten