2016-04-26 4 views
-2

Nehmen wir an, ich habe den folgenden Code. Wäre es möglich, die Klasse add von der Klasse math abzuleiten und die Funktion sum zu deklarieren, dann leiten Sie eine Klasse von add namens addNumbers ab, die die Funktion sum implementiert.Ist es möglich, eine Klassenmember Funktionen in einer anderen Klasse zu implementieren

class math 
{ 
public: 
virtual int sum() = 0; 
} 

class add : public math 
{ 
public: 
int sum(); 
} 

class addNumbers : public add 
{ 
private: 
int a, b; 

public: 
add::sum() 
{ a + b} 

} 
+1

Verstehen Sie, wie Polymorphismus funktioniert? – rwols

+0

Lassen Sie einfach die 'int sum();' - Deklaration von 'class add' fallen. –

+0

@rwols, es ist klar, dass sie nicht :) Daher die Frage. –

Antwort

1

es möglich sein würde, Klasse hinzufügen aus der Klasse Mathematik abzuleiten und die Funktion Summe erklären, leitet dann eine Klasse von Add genannt addNumbers, die die Funktion Summe implementiert.

Nr

sum hat in add umgesetzt werden, wenn es die Art und Weise haben Sie es deklariert ist. Andernfalls sollten Sie einen Linker-Fehler sehen.

Wenn add nicht über ausreichende Informationen zur Implementierung von sum verfügt, deklarieren Sie nicht sum in add. Deklarieren und definieren Sie es in addNumbers.

aktualisieren, als Reaktion auf Kommentar des OP

Verwenden

class add : public math 
{ 
    // Add whatever is needed for this class 
} 

class addNumbers : public add 
{ 
    private: 
     int a, b; 

    public: 
     int sum() 
     { 
     return (a + b) 
     } 

}; 
+1

Nun, die Deklaration weglassen, es ist nur transparent. –

+0

Wie soll ich meine Summenfunktion deklarieren, damit sie so funktioniert, wie ich es möchte? – user3076906

+0

@ user3076906, siehe Update. –

0

Sie können sum Funktion im addNumbers implementieren. die sum Funktion deklarieren in Mathematik-Klasse virtuell. aber Sie wurden nicht definiert sum Funktion in add virtuell, aber es ist virtuell. So können Sie sum im addNumbers definieren/implementieren und es wird bei der vorherigen Deklaration in add Klasse überschreiben.

Verwandte Themen