2017-07-09 6 views
-2

Ich habe zwei Fragen: 1. Wenn Basisklasse und abgeleitete Klasse hat die gleiche Member-Funktion-compute() und wenn ich ein Objekt der abgeleiteten Klasse erstellen und Aufruf derived_obj.compute(), dann Welche Funktion der Klasse wird aufgerufen?Aufruf überladene Funktion von abgeleiteten Klasse

2.Could rechtfertigen Sie die Ausgabe für dieses:

 #include<iostream.h> 
    #include<iostream.h> 
class Base 
{ 
    int x, y, z; 
    public: 
    Base() 
    { 
     x = y = z = 0; 
    } 
    Base(int xx, int yy = 'A', int zz = 'B') 
    { 
     x = xx; 
     y = x + yy; 
     z = x + y; 
    } 
    void Display(void) 
    { 
     cout<< x << " " << y << " " << z << endl; 
    } 
}; 
class Derived : public Base 
{ 
    int x, y; 
    public: 
    Derived(int xx = 65, int yy = 66) : Base(xx, yy) 
    { 
     y = xx; 
     x = yy; 
    } 
    void Display(void) 
    { 
     cout<< x << " " << y << " "; 
     Display(); 
    } 
}; 
int main() 
{ 
    Derived objD; 
    objD.Display(); 
    return 0; 
} 
+0

Wo ist 'compute()' und 'derived_obj' ?? –

+0

Auf Ihrer Hauptseite erstellen Sie ein abgeleitetes Objekt, und Sie rufen die Derived.Display-Memberfunktion auf. Dort gibt es kein Geheimnis. –

+0

Und im Titel Ihrer Antwort sollte "overloaded" in "override" geändert werden –

Antwort

0

In diesem Fall ist es die Funktion der abgeleiteten Klasse, weil das Objekt objD genannt wird, hat sich als solche deklariert.

Verwandte Themen