相关疑难解决方法(0)

运算符重载的c ++多态性

如何使纯虚函数成为运算符+(); 功能.whehı在基类int operator +()= 0中这样做; 编译器给出错误.在派生类运算符+()函数编译器中说派生类不能使.因为下面的类是抽象的,我知道我不能创建抽象类的对象,但现在我尝试创建派生类对象.

这是代码

#include <iostream>
using namespace std;
class ana {
    protected :
    int x;

    public :
    virtual int operator+()=0;
    virtual void operator=(ana&)=0;
    };

class baba : public ana{
    public:
    baba(int k){x=k;}
    int   operator+(baba &ali){
        int k;
        k=x+ali.x;
        return k;
    }
   void operator=(baba &ali){
       x=ali.x;
       }


    };

int main(){
    baba k(4);

    return 0;
    }
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism abstract-class operator-overloading

10
推荐指数
3
解决办法
3万
查看次数