C++ dziedziczenia

C++ dziedziczenia
M2
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 9 lat
  • Postów:31
0
Kopiuj
class User
{
protected:
	unsigned int ID;
public:
	virtual void display() = 0;
};

class Menager :public User
{

	void  display() {};
};

class Worker :public User
{
	std::string Name, Sname;
	size_t Salary;

public:
	void display()
	{

		cout << Sname << " " << Name << ", wyplata: " << Salary << endl;
		

	}

};

Chcę teraz aby jeśli zostanie spełniony warunek 1. wywołała się funkcja z klasy Menager, a gdy 2. funkcja z klasy Worker. Niestety, kompilator protestuje.

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:3 miesiące
2

nie widzę tu żadnych warunków.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
NI
10 sekund różnicy :)
NI
  • Rejestracja:około 11 lat
  • Ostatnio:około 5 lat
  • Lokalizacja:Warszawa
  • Postów:535
1

nie masz tu żadnego warunku....


Programuje i programuje ,przychodzi człowiek "o niższej inteligencji" i rok pracy zmarnowany
MarekR22
Moderator C/C++
  • Rejestracja:około 17 lat
  • Ostatnio:3 minuty
5
maggy24 napisał(a):

Chcę teraz aby jeśli zostanie spełniony warunek 1. wywołała się funkcja z klasy Menager, a gdy 2. funkcja z klasy Worker. Niestety, kompilator protestuje.

Bezsensu! masz zrobione dziedziczenie i polimorfizm, więc po co ci potrzebny jakiś warunek?
Wywołujesz na wskaźniku User * metodę display a zależnie czy wskazuje on na Worker czy Manager to wywołana zostanie właściwa metoda! Na tym polega polimorfizm.
Ładowanie tu jakiegoś warunku wskazuje na to, że czegoś nie zrozumiałeś podczas czytania książki/kursu.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.