C++ 虚纯函数
我知道类内部的纯虚函数使该类变得抽象。这意味着我不能用那个类创建对象,我必须在所有派生类中重写那个虚函数 我有以下代码:C++ 虚纯函数,c++,inheritance,overriding,virtual,pure-virtual,C++,Inheritance,Overriding,Virtual,Pure Virtual,我知道类内部的纯虚函数使该类变得抽象。这意味着我不能用那个类创建对象,我必须在所有派生类中重写那个虚函数 我有以下代码: class Forma{ protected: double x,y; public: Forma(double h=0, double v=0); virtual double Arie() const; virtual double Perimetru() const=0; }; class
class Forma{
protected:
double x,y;
public:
Forma(double h=0, double v=0);
virtual double Arie() const;
virtual double Perimetru() const=0;
};
class Dreptunghi: public Forma{
public:
Dreptunghi(double h=0, double v=0);
virtual double Arie() const;
virtual double Perimetru() const;
};
class Cerc:public Forma{
protected:
double raza;
public:
Cerc(double h=0, double v=0, double r=0);
virtual double Arie() const;
virtual double Perimetru() const;
};
Forma::Forma(double h,double v){x=h; y=v;}
double Forma::Arie() const{return x*y;}
double Forma::Perimetru() const{return x+y;}
Dreptunghi::Dreptunghi(double h,double v){Forma(h,v);}
double Dreptunghi::Arie() const{return x*y;}
double Dreptunghi::Perimetru() const{return 2*x+2*y;}
我的错误如下:
我怎样才能解决这个问题?谢谢。将参数传递给基类的语法如下:
Dreptunghi::Dreptunghi(double h, double v) : Forma(h, v) {}
按照您编写它的方式,它会尝试创建Forma
的实例,这当然是不允许的
Dreptunghi::Dreptunghi(double h, double v) : Forma(h, v) {}