Stel je hebt een basisklasse met een bepaalde functie 'foe':
en een overgeerfde klasse, die ook de functie 'foe' heeft, maar met een verschillend aantal parameters
Dan is de functie Base::foe niet meer beschikbaar voor een object van het type Inherited. Ik weet dat
je die functie weer beschikbaar kan maken door
C++:
1
2
3
4
5
6
7
8
| class Base { public: int foe (int par1) { // ... } }; |
en een overgeerfde klasse, die ook de functie 'foe' heeft, maar met een verschillend aantal parameters
C++:
1
2
3
4
5
6
7
8
| class Inherited: public Base { public: int foe (int par1, int par2) { // ... } }; |
Dan is de functie Base::foe niet meer beschikbaar voor een object van het type Inherited. Ik weet dat
je die functie weer beschikbaar kan maken door
C++:
aan de Inherited class toe te voegen, maar ik vraag me eigenlijk gewoon af waarom Base::foe niet meer beschikbaar is. Uiteindelijk heb je toch 2 functies met verschillend aantal parameters, en dus een andere signature? In een enkele klasse kan je ook 2 functies met dezelfde naam maar verschillend aantal parameters gebruiken, dus waarom niet met overgeerfde klasses?
1
| using Base::foe; |