우선
잠재적 모호성이란?
이런 경우를 잠재적 모호성이라 한다.
이유.
1. 컴파일 타임 중 예상치도 않은 오류가 날수 있다.
2. 라이브러리 파일의 이식성이 엄청나게 떨어진다.
해결방법
1. 네임스페이스를 사용한다.( 이 방법은 가독성을 떨어 뜨릴수 있다...)
2. 항상 디버깅이 가능한 코딩 습관을 길러야 한다;
3. 설계를 잘 하는 방법밖에 없다.
개인적인 생각
1. 이 이야기에 대한 해결 방법은 오로지 프로그래머의 몫이다.
2. .. 항상 노력하고 염두하고, 설계 해야 한다.
부스러기 이야기
일전에 이런일이 있어 참 난감했었다. 그때는 네임스페이스의 난발로 모든 코드가 지저분했다.
그래서 좋은 프로그래머란,
"모든 것을 하는 프로그래머"가 아닌 "모든 것을 설계 하는 프로그래머" 라고 생각된다.
.. 모든 것을 어거지로 구현할 순 있다.
하지만 어거지 프로그램이 되니까 문제다!
잠재적 모호성이란?
#include <iostream>
class A
{
public:
A(const B&);
};
class B
{
public:
operator A() const;
};
int main()
{
void f(const A&);
B b;
f(b);
// B클래스의 operator A() 가 호출될까?
// A클래스의 생성자 A() 가 호출될까?
}
이런 경우를 잠재적 모호성이라 한다.
이유.
1. 컴파일 타임 중 예상치도 않은 오류가 날수 있다.
2. 라이브러리 파일의 이식성이 엄청나게 떨어진다.
해결방법
1. 네임스페이스를 사용한다.( 이 방법은 가독성을 떨어 뜨릴수 있다...)
2. 항상 디버깅이 가능한 코딩 습관을 길러야 한다;
3. 설계를 잘 하는 방법밖에 없다.
개인적인 생각
1. 이 이야기에 대한 해결 방법은 오로지 프로그래머의 몫이다.
2. .. 항상 노력하고 염두하고, 설계 해야 한다.
부스러기 이야기
일전에 이런일이 있어 참 난감했었다. 그때는 네임스페이스의 난발로 모든 코드가 지저분했다.
그래서 좋은 프로그래머란,
"모든 것을 하는 프로그래머"가 아닌 "모든 것을 설계 하는 프로그래머" 라고 생각된다.
.. 모든 것을 어거지로 구현할 순 있다.
하지만 어거지 프로그램이 되니까 문제다!
'책 정리 > Effective C++ 2판' 카테고리의 다른 글
항목 30. 접근하기 어려운 멤버에 대한 비상수 포인터나 레퍼런스를 리턴하는 멤버 함수 사용을 피해라 (0) | 2008.05.10 |
---|---|
항목 29. 내부 데이터에 대한 "핸들"을 리턴하는 것을 피해라 (0) | 2008.05.10 |
클래스와 함수 : 구현 (0) | 2008.05.10 |
항목 28. 전역 네임스페이스를 분활한다. (0) | 2008.05.10 |
항목 27. 의도하지 않은 내부 생성 맴버 함수의 이용을 명시적으로 막는다. (0) | 2008.05.10 |
항목 25. 포인터나 수치형 타입상의 오버로딩을 피한다. (0) | 2008.05.10 |
항목 24. 함수 오버로딩과 디폴트 인자값 중에서 주의깊게 선택한다. (0) | 2008.05.10 |
항목 23. 객체 반환시 레퍼런스를 반환하지 않는다. (0) | 2008.05.10 |
항목 22. 값에 의한 호출보다는 레퍼런스에 의한 호출을 선호한다. (0) | 2008.05.10 |
항목 21. 가능한 const를 이용한다. (0) | 2008.05.10 |
최근댓글