Dziedziczona metoda z inyymi argumentami

Dziedziczona metoda z inyymi argumentami
lukashid
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 93
0

Tworzę klasę,w której mam funkcję dodaj(int wartosc, int wartosc2).
Następnie tworzę klasę, w której dziedziczę po tej pierwszej.
I teraz chciałbym w tej potomnej klasie mieć również metodę dodaj, ale taką,żeby drugi argument posiadał zawsze wartość 0.
Jak można rozwiązać taki problem ?

mwl4
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 404
0

Usunąć drugi argument ?

lukashid
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 93
0

Tak, ale wówczas będę musiał zdefiniować tę funkcję na nowo. A chodzi mi o to, żeby wykonywała to samo co w klasie bazowej.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

O_O

Kopiuj
int dodaj(int argument){
    return Base::dodaj(argument, 0);
}

?

lukashid
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 93
0

O widzisz. Tego mi było trzeba :)

mwl4
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 404
0
Kopiuj
#include <cstdio>

class CBase
{
public:
	void dodaj(int value1, int value2);
};

class CChild : public CBase
{
public:
	void dodaj(int value1);
};

void CBase::dodaj(int value1, int value2)
{
	printf("CBase::dodaj, arguments: %i;%i\n", value1, value2);
}

void CChild::dodaj(int value1)
{
	printf("CChild::dodaj, arguments: %i\n", value1);
	CBase::dodaj(value1, 0);
}

int main(int, char**)
{
	CChild * pChild = new CChild();
	pChild->dodaj(1);

	delete pChild;
	
	return 0;
}

http://ideone.com/C5fkZB

// edit:
ah.. spóźniłem się xD

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.