#include <stdio.h>

#include <Windows.h>

#include <vector>


class test

{


private:

char* a;

public:

test()

{


}

test(char* _a)

{

a = new char[strlen(_a) + 1];

strcpy(a, _a);

}

~test()

{

printf("소멸자 호출\n");

delete []a;

}

void print()

{

printf(a);

}

};

std::vector<test> a;

void aa()

{

test re("안녕");

a.push_back(re);

return;

}

int main()

{

aa();

test result = a[0];

result.print();

return 0;

}


이 있으면 void aa() {return} 부분에서 test 소멸자 호출해서 내용이 사라져버림


넣는 인자는 보니까 test 의 포인터가 들어감


그래서 result.print() 에서 띄우는 내용이 읭읭해짐


방법 없을까요


깊은복사라던가 깊은복사라던가..