C++ Shape Class with Circle & Rectangle

#include <iostream>
#define PI 3.14
using namespace std;

// abstract Shape class with color and area; Circle & Rectangle implement it

class Shape {
private:
    string color;
    float area;

public:
    void setColor(string c) {
        color = c;
    }

    string getColor() {
        return color;
    }

    void setArea(float a) {
        area = a;
    }

    float getArea() {
        return area;
    }

    virtual void calculateArea() = 0;
};

class Circle : public Shape {
private:
    float radius;

public:
    void setRadius(float r) {
        radius = r;
    }

    void calculateArea() {
        float a = PI * radius * radius;
        setArea(a);
    }
};

class Rectangle : public Shape {
private:
    float length, breadth;

public:
    void setDimensions(float l, float b) {
        length = l;
        breadth = b;
    }

    void calculateArea() {
        float a = length * breadth;
        setArea(a);
    }
};

int main() {
    Circle c;
    c.setColor("Red");
    c.setRadius(5);
    c.calculateArea();
    cout << "Circle Color: " << c.getColor() << endl;
    cout << "Circle Area: " << c.getArea() << endl;

    Rectangle r;
    r.setColor("Blue");
    r.setDimensions(4, 6);
    r.calculateArea();
    cout << "Rectangle Color: " << r.getColor() << endl;
    cout << "Rectangle Area: " << r.getArea() << endl;

    return 0;
}