Ich versuche, einen Operator zu machen, der mir erlaubt, eine ganze Zahl zu einer meiner Klassen hinzuzufügen, aber ich habe Probleme wie folgt.Binärer Operator überladen und Polymorphismus
struct Base
{
//Will have value of zero
};
struct Derived : public Base
{
int value_;
};
int & operator+=(int & num, Base & b);
int & operator+=(int & num, Derived & d);
Mit der Betreiber Implementierung von
int & operator+=(int & num, Base & b)
{
return num;
}
int & operator+=(int & num, Derived & d)
{
num += d.value_;
return num;
}
So habe ich einen Vektor und ich versuche, durchlaufen und alle Werte auf eine ganze Zahl hinzuzufügen. Aber auch solche vom Typ Abgeleitet ändern die Summe nicht.
Wie kann ich den Operator polymorph überladen?
Es gibt einige lustige Gerüche um die ganze Idee, aber auf jeden Fall sollten Sie die Definition Ihres * Vektors * angeben. Das erste potentielle Problem besteht darin, dass alle Ihre Objekte in "Base" geschnitten wurden ... –