Что это означает?
class A
{
public:
A(){cout << "ctr" << endl;}
~A(){cout << "destr" << endl;}
};
int _tmain(int argc, _TCHAR* argv[])
{
std::vector<A> av(5);
cout << "-------" << endl;
return 0;
}
ctr
destr
-------
destr
destr
destr
destr
destr
Press any key to continue
Здравствуйте, Аноним, Вы писали:
А>Что это означает?
А>А>class A
А>{
А>public:
А> A(){cout << "ctr" << endl;}
А> A(const A&){cout << "copy ctr" << endl;}
А> ~A(){cout << "destr" << endl;}
А>};
А>int _tmain(int argc, _TCHAR* argv[])
А>{
А> std::vector<A> av(5);
А> cout << "-------" << endl;
А> return 0;
А>}
А>
добавь такую строчку
Здравствуйте, Аноним, Вы писали:
Это означает, что ты используешь вот этот конструктор вектора:
23.2.4.1
explicit vector(size_type n, const T& value = T(),const Allocator& = Allocator());
т.е. сначала создается 1 временный объект с использванием конструктора по умолчанию, а затем этот временный объект используется для конструирования элементов вектора с использованием конструктора копирования.
Здравствуйте, Аноним, Вы писали:
А>Что это означает?
А>А>class A
А>{
А>public:
А> A(){cout << "ctr" << endl;}
А> ~A(){cout << "destr" << endl;}
А>};
А>int _tmain(int argc, _TCHAR* argv[])
А>{
А> std::vector<A> av(5);
А> cout << "-------" << endl;
А> return 0;
А>}
А>
А>ctr
А>destr
А>-------
А>destr
А>destr
А>destr
А>destr
А>destr
А>Press any key to continue
Какой компилятор? У меня просто:
-------
Press any key to continue
Hello, , you wrote:
Сигнатрура конструктора вектора выглядит так:
vector::vector(size_t size, T const & initValue = T());
То есть сначала вызовом конструктора по умолчанию создается объект, которым с
помощью конструктора копирования инициализируются все элементы вектора, потом
этот объект удаляется.
#include <iostream>
#include <vector>
using namespace std;
class A
{
public:
A(){cout << "ctr" << endl;}
A(A const &){cout << "copyctr" << endl;}
~A(){cout << "destr" << endl;}
};
int main(int argc, char* argv[])
{
vector<A> av(5);
cout << "-------" << endl;
return 0;
}
ctr
copyctr
copyctr
copyctr
copyctr
copyctr
destr
-------
destr
destr
destr
destr
destr
Press any key to continue
--
Igor Polyakov — igorpol_gbt (at) mail (dot) ru
Posted via RSDN NNTP Server 1.9