만약에 함수 내에서 객체를 하나 만들고 그 객체를 반환한다고 치면
함수 내에서 만든 객체도 소멸이 되는거 맞죠?
객체가 사라진다기보단 포인터가 사라진다고 보는게 맞을듯
이게 맞는거긴한데 그게 그말임 포인터가 없어지면 어차피 재사용못하니까 - dc App
클래스 내에서 따로 소멸자 만들어서 다 메모리 해제해주면 함수가 끝났을 때 그 함수 내에서 만든 객체가 소멸된다고 이해하면 될까요??
그게 C++가 진화하면서부터 생각보다 좀 복잡해진 문제임
일단 모-던 ㅈ까고 설명할게 ㅇㅅㅇ 함수 안에서 A a;같은식으로 적당한 객체를 만들고 return a; 했다 치면 원본 a는 소멸자가 싹 지워주는게 맞음 ㅇㅅㅇ 대신 a의 사본이 만들어져서(복사생성자가 호출되겠지?) 리턴됨 ㅇㅅㅇ
여기서 이거 구지 그냥 a 사본 만들어서 리턴하고 원본 파괴하는 뻘짓을 할 필요가 없지 않나? 걍 a 원본 소멸 안시키고 넘기면 안되나...? 는 생각이 들 거임 ㅇㅅㅇ 그래서 나온게 이동생성자랑 이동 개념임 ㅇㅅㅇ(여기서부턴 모-던 영역)
감사합니다 이게 복사생성자였나보네요
아고 책에는 복사생성자만 설명이 되어있는데 옛날책이라 그런가보네영.. 이동생성자 공부하러 갑니당..
객체가 사라진다기보단 포인터가 사라진다고 보는게 맞을듯
이게 맞는거긴한데 그게 그말임 포인터가 없어지면 어차피 재사용못하니까 - dc App
클래스 내에서 따로 소멸자 만들어서 다 메모리 해제해주면 함수가 끝났을 때 그 함수 내에서 만든 객체가 소멸된다고 이해하면 될까요??
그게 C++가 진화하면서부터 생각보다 좀 복잡해진 문제임
일단 모-던 ㅈ까고 설명할게 ㅇㅅㅇ 함수 안에서 A a;같은식으로 적당한 객체를 만들고 return a; 했다 치면 원본 a는 소멸자가 싹 지워주는게 맞음 ㅇㅅㅇ 대신 a의 사본이 만들어져서(복사생성자가 호출되겠지?) 리턴됨 ㅇㅅㅇ
여기서 이거 구지 그냥 a 사본 만들어서 리턴하고 원본 파괴하는 뻘짓을 할 필요가 없지 않나? 걍 a 원본 소멸 안시키고 넘기면 안되나...? 는 생각이 들 거임 ㅇㅅㅇ 그래서 나온게 이동생성자랑 이동 개념임 ㅇㅅㅇ(여기서부턴 모-던 영역)
감사합니다 이게 복사생성자였나보네요
아고 책에는 복사생성자만 설명이 되어있는데 옛날책이라 그런가보네영.. 이동생성자 공부하러 갑니당..