Frage : Kategorie

warum die Linie derv.func ist (); Ausfallen mit Compilerstörung aber -ihr mag das line
derv.func_1 (); Ich dachte, dass Methodenaufheben

class A
bearbeiten sollte {
Öffentlichkeit:
leeres Funktions () {printf („\ n niedrige funktionellkategorie \ n“);}
leeres func_1 () {printf (“ \ n func_1 \ n ");}
};

class B: allgemeines A
{
public:
leeres Funktions (int A) {}

};

int Hauptleitung (int argc, Putzfrau *argv [])
{
B derv;
derv.func_1 ();
derv.func (); //-Compiler, den Störung sagt, erfordert 1 Argument.

Rückkehr 0;
}

Antwort : Kategorie

Es ist nicht gerade eine Übersteuerung - es ist eine Kombination einer Übersteuerung und eine Überlastung, die Sie tun.

Sie aufgehoben die Funktionsfunktion, einschließlich alle seine Überlastungen ne. Sie können irgendwelche der Funktionsmethoden a von einem b-Fall nicht benennen, da alle sie versteckt, indem man die Funktionsmethode aufhebt.

Dieses arbeiten zwar:
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:
Kategorie A
{
  Öffentlichkeit:
        leeres Funktions (int A) {printf („\ n niedrige funktionellkategorie \ n“);}
         leeres func_1 () {printf („\ n func_1 \ n“);}
};

Kategorie B: Öffentlichkeit A
{
Öffentlichkeit:
      leeres Funktions (int A) {  }
 
};



// oder dieses:

Kategorie A
{
  Öffentlichkeit:
        leeres Funktions () {printf („\ n niedrige funktionellkategorie \ n“);}
         leeres func_1 () {printf („\ n func_1 \ n“);}
};

Kategorie B: Öffentlichkeit A
{
Öffentlichkeit:
      leeres Funktions () {A:: funktionell (); }
      leeres Funktions (int A) {  }
 
};
Weitere Lösungen  
 
programming4us programming4us