Элементарный вопрос по контейнерам.
От: wombat  
Дата: 04.05.07 06:58
Оценка:
Есть код:
#include "stdafx.h"
namespace std{};
using namespace std;
#include "vector"


class CMyClass{
public:
    CMyClass(){printf("Create\n");}
    CMyClass(const CMyClass &src){printf("Copy create\n");};
    ~CMyClass(){printf("Delete\n");}

    void SayHello(){printf("Hi\n");};
    void SaySomething(){printf("Something\n");};
};

int main(int argc, char* argv[])
{
    vector<CMyClass> aMyClassVector2;

    CMyClass temp;
    temp.SayHello();
    
    aMyClassVector2.push_back(temp);
    aMyClassVector2.push_back(temp);

    return 0;
}


По идее, результат, появляющийся на экране, должен иметь вид:
Create
Hi
Copy create
Copy create
Delete
Delete
Delele

однако имеем:
Create
Hi
Copy create
Copy create
Copy create
Delete
Delete
Delele
Delele

Внимание вопрос: откуда взялась еще одна копия и чего именно это копия в данном случае?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.