У меня есть базовый класс
class Shape{
public:
virtual int getArea()=0;
}
Хочу поменять подпись пока overriding
как это:
class Rectangle : class Shape{
public:
int getArea(int someParameter = 0){
return 0;
}
}
Можно ли как-то добиться этого, так как я использую значение по умолчанию для вновь добавленного параметра?
Единственное решение, которое я вижу, это то, что вы реализуете оба int getArea()
а также int getArea(int)
где одна функция может вызывать другую (например, int getArea() { return getArea(0); }
). Вы не можете иметь перегрузку, принимающую аргумент, тогда есть аргумент по умолчанию.