Прочитав эту статью в блоге Херба Саттера, я немного поэкспериментировал и столкнулся с чем-то, что меня озадачило. Я использую Visual C ++ 2005, но я бы удивился, если бы это зависело от реализации.
Вот мой код:
#include <iostream>
using namespace std;
struct Base {
//Base() {}
~Base() { cout << "~Base()" << endl; }
};
int main()
{
const Base & f = Base();
}
При запуске отображается «~Base()
» дважды ... Но если я откомментирую конструктор, он отобразит только один раз !
У кого-нибудь есть объяснение этому?