나는 도서관을 쓰고있다. 이름이 같은 두 개의 클래스가 있지만 각각의 클래스가 다른 네임 스페이스에있는 것은 나쁜 생각입니까?다른 이름 공간에 같은 이름의 클래스
사용하여 이름 공간 :
//forward declaration
namespace sparse {
class matrix;
}
namespace dense {
class matrix;
}
namespace dense {
typedef Index uint64_t;
class matrix {
public:
sparse::matrix tosparse();
};
}
namespace sparse {
typedef Index uint32_t;
class matrix {
dense::matrix todense();
};
}
또한, 나는 긴 이름을 사용할 수 있습니다
이class sparse_matrix
...
라이브러리의 사용자가'namespace *; '를 사용하지 않는 것으로 신뢰합니까? 대답이 '아니오'이면 매우 안전하지 않습니다. 나는 그저 긴 이름을 사용할 것이다. 어쨌든 그렇게 오래 걸리지 않습니다. – DeiDei
@DeiDei가 말한 것을 확장하면 실제로 사용법에 달려 있습니다. 필자의 견해로는 이들이 함께 사용될 수도 있고'dense :: matrix'와'sparse :: matrix'는'dense_matrix'와'sparse_matrix'보다 길다. –
개인적으로 필자는 긴 네임 스페이스의 별명을 지정하고 라이브러리를 사용할 때'namespce *;를 사용하지 않을 것입니다. 그러나 나는 그것이 일어날 수 있다고 생각합니다 ...... –