Присвоение значения переменной, как в операторе c = 123;
, недопустимо вне объявления переменной или присвоения, выполняемого внутри функции. Это означает, что вы не можете выполнить это из области класса производного класса:
class Rectangle: public Shape{
public:
c = 123; // <-- illegal
int d = 123; // <-- OK, in C++11 and later
Rectangle() { c = 321; } // <-- OK
void change_c(){ c = 321; } // <-- OK
}