Vraag : klasse

waarom de lijn derv.func is (); ontbreekt met compilerfout maar het houdt van line
derv.func_1 (); Ik dacht methode het met voeten treden

class A
zou moeten werken {/> publiek nietige func
nietige func_1 () {printf (“ \ n func_1 \ n ");}
};

class B: openbare A
{
public: /> nietige func

};

int hoofd (int. argc, klusje *argv [])
{
B derv;
derv.func_1 ();
derv.func (); // de compilerfout zegt 1 argument vereist.

terugkeer 0;
}

Antwoord : klasse

Het is niet alleen een opheffing - het is een combinatie van een opheffing en een overbelasting die u doet.

U hebt de funcfunctie, met inbegrip van elk van zijn overbelasting met voeten getreden. U kunt geen van funcmethodes van A van een instantie van B roepen, aangezien zij allen door de funcmethode met voeten te treden worden verborgen.

Dit zou niettemin werken:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
klasse A
{
  publiek:
        nietige func (int. a) {printf („de klasse \ n van de \ n func basis“);}
         nietige func_1 () {printf („\ n func_1 \ n“);}
};

klasse B: openbare A
{
publiek:
      nietige func (int. a) {  }
 
};



// of dit:

klasse A
{
  publiek:
        nietige func () {printf („de klasse \ n van de \ n func basis“);}
         nietige func_1 () {printf („\ n func_1 \ n“);}
};

klasse B: openbare A
{
publiek:
      nietige func () {A:: func (); }
      nietige func (int. a) {  }
 
};
Andere oplossingen  
 
programming4us programming4us