Это не будет течь.Если вы хотите убедиться, поместите оператор отладки в деструктор A
.
РЕДАКТИРОВАТЬ: простой пример ...
#include <iostream>
class A
{
public:
A() { std::cout << "A::A()" << std::endl; }
~A() { std::cout << "A::~A()" << std::endl; }
};
Class C {
private:
A a[10];
};
int main() {
C c;
}
Теперь компиляция и запуск приведенного выше примера, должныпроизвести 10 экземпляров первого оператора отладки и 10 экземпляров второго оператора отладки.Последние 10 операторов создаются, когда 10 экземпляров A
уничтожены (что делается автоматически для вас - отсюда и термин автоматическое хранение , когда они выходят за рамки - в данном случае, когдаэкземпляр C
[которому они принадлежат] выходит за рамки [в конце main
].)