c++ - 虚运算符重载 C++

标签 c++ oop inheritance operator-overloading virtual

假设我想为派生类重载“==”运算符,我是否需要在派生类头文件中重写重载,或者有没有办法在 .cpp 文件中实现运算符重载而不必在头文件中添加任何内容?如果是这样,派生运算符的实现在 .cpp 中会是什么样子?

我的标题看起来像什么:

class A
{
    public:
    A();
    ~A();
    virtual bool operator==(const A &ref) = 0;
    protected:
    int year;
    string note;
}
class B:A
{
    public:
    B();
    ~B();
    bool operator==(const B &ref); //is this needed or not?
    private:

    int month, day;
}

最佳答案

如果要覆盖子类中的虚函数,则需要在子类中声明函数覆盖。

所以是的,需要声明。


这样想:类声明可以在很多地方和很多源文件中使用,否则编译器怎么知道该函数已被重写?

关于c++ - 虚运算符重载 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30638634/

相关文章:

JavaScript 对象 : Literal Vs Constructor

php - 如何用未知参数初始化对象?

java - Java 中具有不同参数数据类型的继承和重载方法

c++ - 如何使用 fstream 删除文本文件中的特定行

c++ - 我如何比较在 C++ 中分配给#define 的 bool 值

c++ - 来自 std::vector 的 pop-push 元素并重用元素

C++:从指向类的指针访问成员结构的语法

php - 为什么不能访问一个类的属性,但是可以访问同一个类的方法?

c++ - 如何正确组织继承类以利用多态性?

java - 找不到符号 - 构造函数 JAVA