<分区>
我正在经历从 Java 到 C++ 的过渡,并且正在尝试编写一个简单的程序。
有一个父类(super class) Animal
具有以下接口(interface):
class Animal
{
public:
Animal(int a, std::string n);
bool operator==(Animal a);
private:
int age;
std::string name;
};
它是 Dog
的子类:
class Dog : public Animal
{
public:
Dog(int a, std::string n, double w);
bool operator==(Dog d);
private:
double weight;
};
我的问题是关于 Dog 的 operator==
方法,它比较 2 只狗。
动物的 operator==
如下。
bool Animal::operator==(Animal a) //overriding of operator ==
{
return (age==a.age) && (name==a.name);
}
现在我想用动物的方法写狗的版本。
就像我在 Java 中做的那样:
boolean equals(Dog d){
return (super.equals(d)) && (this.name==d.name);
}
我需要的是 (super.equals(d))
的 C++ 等价物。如果它是一个具有普通名称的方法,它会很容易(Animal::equals(d)),但我不知道如何为 operator== 做它,它具有不同的语法。