이유
1. 내부 영역에서의 변수명이나 함수명은, 외부 영역의 동일한 이름을 감춘다.
2. 감춤으로써 확장성이 떨어지기 때문이다.

해결방법 두가지
1. 클래스에 정의되어 있는 오버로딩된 operator new를 선언할 때 정상형식을 갖춘 operator new를 만들어 둔다. (참조. 이때 클래스에 정의된 operator new를 쓸때는 매개변수를 오버로딩에 맞춘다. 이것도 기초 문법이다)

2008/07/02 14:53 수정
2. 클래스에 정의되어 있는 오버로딩된 operator new의 매개변수를 디폴트값을 넣어, 분기 시켜라  (개인적으로 이 방법이 편하다고 생각된다)
2. 오버로딩된 매게변수에 따라 분기 시키는 방법과 using 키워드를 이용하여, 이름을 가리지 않도록 한다.


덧붙여
어느 방법이건 간에, 기본 함수를 고쳐버릴것이라면, 기본함수의 형식을 맞추어 사용해라.

개인적인 생각
1. 저자는 ... 생각해야 할것을 제시해 준다. 바로 확장성과 이식성, 그리고 디버깅, 메모리 릭,
2. 코딩을 할때 꼭 이 사항을 염두해두라고 강조하는것으로 추측된다.
3. 기초문법의 중요성에 대해서 세삼 알게된다.(오버로딩은 오버라이딩처럼 쓸수 있다....)
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요