В чем проблема? Конструктор - это просто обычная функция для ваших целей, поэтому все, что вы делаете, это объявляете локальный объект a1
типа A
, который удаляется в конце области действия функции.
Обратите внимание, что ваш класс A
, вероятно, очень опасно разработан (подумайте о копировании, назначении и исключениях), и, вероятно, совершенно нет необходимости выделять динамическое хранилище для A
членов.
Обновление: Вот пример того, что вы могли иметь в виду:
class Rectangle
{
unsigned int h, w;
public:
Rectangle() : h(0), w(0) { }
Rectangle(unsigned int height, width) : h(height), w(width) { }
virtual ~Rectangle() { }
virtual unsigned int area() const { return h * w; }
virtual bool isSquare() const { return false; }
};
class Square : public Rectangle
{
public:
Square(unsigned int edge) : Rectangle(edge, edge) { }
// no need to override "area"
virtual bool isSquare() const { return true; }
};