객체 초기화를 최대한 늦추려면 꼭 모든 메서드에 초기화 함수를 호출해야 함????
예를들어 String을 선언만 해놓고, 실제 사용 할 때에 메모리를 잡게 말이야.
혹은 xml을 로드하는데 객체 생성시 로드하지 않고, 그 객체를 실제 사용하는 함수를 사용했을때 로드하는거...
--------
맨 위에서 변수들을 다 선언해 두고 밑에서 대입하고 사용하는 경우가 많은데
예를 들어 CMyString이라는 클래스를 구현하고 그거를 사용 하는데
CMyString 객체 생성시 내부 변수들의 메모리를 잡아버리면 비효율적이잖아. 그래서 별도로 초기화를 해주지 않은 상태인 NULL 상태를 가지고
사용자가 밑에서 문자열을 대입했을때 메모리를 잡자는 거지.. 하지만 이렇게 하면 거의 대부분의 메소드에 초기화가 됬는지 안됬는지 상태를
체크하는 로직이 포함이 될텐데 이것도 중복되는게 만만찮을 테고...
뭔가 다른 방법은 없음??
답글이 하나도 안달려 ... 재탕
근데 어짜피 쓸려고 생성하는거 아님? 언젠간 메모리 필요로 하는데 미리 잡아두는게 더 맞는거 같은데...
쓸려고 생성을 하지만 CMyString 같은 경우는 보통 문자열을 바꾸면 재할당을 하잖아
따라서 선언시 초기화는 불필요한 메모리 할당작업이라는 거징...
그럼 최초 선언땐 최소한(1바이트?) 할당하고 후에 재할당시 확인 하지 말고 무조건 삭제 후 걍 재할당.. 이런 방법은?
혼자 고민하지 말고 libstdc++ 소스라도 들여다보면서 왜 이렇게 했을까 하고 고민하는게 효율이 더 나아보인다
ㅇㅇ; 공백을 위해 4바이트 동적할당하는 작업이 요즘 뭐 그리 큰차이인지 하지만 메가바이트 단위의 파일을 로드하는 작업이 초기화라면 문제가 달라지지 않을까 해서.