CMyString 만들때
멤버로 char* m_pszData를 가지고 있는데,
사용자가 CMyString을 사용할 때
CMyString str;
이렇게 선언하고 나중에 대입을 하던 뭘 하던 하고 그 전에는 m_pszData를 NULL인 상태로 있게 하려거등.
(자바의 String이랑 비슷하다고 보면 댐)
이렇게 만들면 대부분의 메소드에서 m_pszData가 NULL인지 아닌지를 검사하는 코드를 넣어줘야 하나 ㅡㅡ..?
초기 인스턴스 오버헤드 없애려다 코드가 중복되는부분이 엄청 늘어나는거 같은데...
NULL 확인은 IsNull Method를 만드시고, 유저에게 나머지를 맡기는게 어떨까 싶네요.
나머지를 유저에게 맡기기에는 좀... 자바에서는 NullPointException이 떨어지지만 C++에서는 죽어버리니... 클래스 내부를 뒤져봐야 하잖으.
if로 NULL 체크해서 안죽게 하는 코드를 모든 함수에 넣으려고 하는건데.. 이게 비효율적인거 같아서
C++에서도 예외를 던져주시면 되지 않나요.
NULL 체크 코드 또는 함수를 매 앞에 넣는 것보다, 예외 던져주시는 게 좋아 보입니다.
자바처럼 exception을 발생시키면 안 될까요
뭐... 예외던져주는 것도 꼬박꼬박 앞에 들어가야 하겠지만...