私はC++で継承を学んでおり、純粋な仮想クラス、基本クラス、および派生クラスを抽象化するのは初めてです。だから私はこの以下のコードを思いついた、それは動作するが、私がc++プリンシパルを正しく実装しているかどうかはわからない。誰かが改善のために以下のコードを評価できますか?
#include <iostream>
using namespace std;
class Pizza
{
private:
double pCost;
double pPrice;
public:
Pizza(const double& c, const double& p) : pCost(c), pPrice(p){}
virtual ~Pizza(){}
virtual double area() = 0;
virtual double cost() = 0;
virtual double price () = 0;
virtual double profit() = 0;
double getCost() const {return pCost;}
double getPrice() const {return pPrice;}
};
class CircularPizza : public Pizza
{
private:
double radius;
public:
CircularPizza(const double& r, const double& c, const double& p)
: Pizza(c, p), radius(r){}
virtual ~CircularPizza(){}
virtual double area(){ return (3.14 * radius * radius);}
virtual double cost() { return area() * getCost(); }
virtual double price() { return area() * getPrice(); }
virtual double profit() { return price() - cost();}
};