[C++] Błąd w programie. Invalid use of non-static data membe


(marroz28) #1

Witam,

Mam pewien problem związany z moim programem.

#ifndef COSOBA_H

#define COSOBA_H


class COsoba

{

public:

        COsoba(wxString imie = "-brak-",wxString nazwisko = "-brak-")

	{

		Imie = imie;

		Nazwisko = nazwisko;

	}


	~COsoba()

	{

	}

virtual wxString Info()=0;

protected:

	wxString Imie,Nazwisko;


};


#endif // COSOBA_H

Po uruchomieniu w klasie podanej wyżej występuje następujący błąd:

F:/cosoba.h:13:11: error: invalid use of non-static data member 'COsoba::Imie'

F:/cwykladowca.h:13:3: error: from this location

F:/cosoba.h:13:16: error: invalid use of non-static data member 'COsoba::Nazwisko'

F:/cwykladowca.h:14:3: error: from this location

Czy mógł by ktoś poradzić jak rozwiązać ten problem? Tutaj podaj kod reszty klas:

#ifndef CWYKLADOWCA_H

#define CWYKLADOWCA_H


#include "cpracownik.h"


 // Base class: CPracownik


class CWykladowca : public CPracownik

{

public:

	CWykladowca(wxString imie='-brak-',wxString nazwisko='-brak-', double pensum=0.0)

	{

		Imie=imie;

		Nazwisko=nazwisko;

		Pensum=pensum;

	}

	~CWykladowca();

	wxString Info()

	{

		return wxString::Format(Imie,Nazwisko," ma pensum ",Pensum);

	}


protected:

	double Pensum;

};

#endif // CWYKLADOWCA_H

#ifndef CPRACOWNIK_H

#define CPRACOWNIK_H


#include "cosoba.h" // Base class: COsoba



class CPracownik : public COsoba

{

public:

	CPracownik(wxString imie='-brak-', wxString nazwisko='-brak-', double etat=0.0, double pensja=0.0)

	{

		Imie=imie;

		Nazwisko=nazwisko;

		Etat=etat;

		Pensja=pensja;

	}

	~CPracownik()

	{

	}

 wxString Info()

{

	return wxString::Format(Imie,Nazwisko," ma etat i pensje ",Etat,Pensja);

};

protected:

	double Pensja;

	double Etat;



#endif // CPRACOWNIK_H

([alex]) #2
COsoba(wxString imie = "-brak-",wxString nazwisko = "-brak-"):Imie(imie),Nazwisko(nazwisko) // tu nie koniecznie

   {

   }


   CPracownik(wxString imie='-brak-', wxString nazwisko='-brak-', double etat=0.0, double pensja=0.0):COsoba(imie,nazwisko) // ale tu już tak

   {

      Etat=etat;

      Pensja=pensja;

   }

(etam) #3

http://www.parashift.com/c+±faq/init-lists.html

http://www.stroustrup.com/bs_faq2.html# … -reference

http://www.learncpp.com/cpp-tutorial/11 … d-classes/