Uberladen ein virtual Methode

noureddine ahm

Grünschnabel
Heey Zusammen

koennt ihr mir bitte helfen ?

Bauelement ist Basisklasse und hat als protected attribute hersteller;
widerstand ist abgeleitete Klasse und hat als private attribute R ;

ich will zwei widerstaende (R) addieren und als Bauelement zurueckgeben

das ist definition der Funtkion in basise Bauelemnet Klasse :
virtual Bauelement* Widerstand::eek:perator+(const Bauelement &b)

das ist definition der Funtkion in abgeleitete klasse Klasse :
Bauelement* Widerstand::eek:perator+(const Bauelement &b)

Bauelement* Widerstand::eek:perator+(const Bauelement &b)
{
......??
}
ich danke euch im Voraus
 
Soll ich mal raten?

Ist zwar auch eine Schnitzeljagd.
C++:
class Bauelement;

class Bauelement
{

    protected:
        virtual Bauelement* operator+(const Bauelement &b) = 0;
        std::string hersteller;
};

class Widerstand : Bauelement
{
    public:

        Bauelement* operator+(const Bauelement &b);
    private:
        double R;

};

Merkst du was? Das funktioniert so nicht. Ich nehme mal an, du willst Schaltpläne rechnen. Dann: Jedes Element hat einen Widerstand (es sei denn, du kannst den Schaltkreis auf 0 K kühlen), also: Warum brauchst du eine Klasse, die den Widerstand repräsentiert?
Einfacher geht es so:
C++:
class Bauelement
{
    public:
         Bauelement(){};
         Bauelement(double res) {
             this->m_resistance = res;
         }
         inline double getResistance(){
             return this->m_resistance;
         }
         Bauelement* operator+(Bauelement& b) {
             return new Bauelement(this->getResistance() + b.getResistance());
         }
    private:
        double m_resistance;

};

Aber wie mein Vorredner schon sagte: Es wäre einfacher, würdest du die Rechtschreibung einhalten und deine Gedanken einigermassen gliedern.

Gruss
cwriter
 
Zurück