2
取決於Scott Myers advice在大多數情況下,非成員好友函數在成員函數中更喜歡它們是有意義的 - 對於設置名稱空間的建議約定是什麼?對非會員非朋友功能的命名空間有什麼好的約定?
特別是,您如何避免將所有內容嵌入到命名空間中,並最終導致可讀性較差的代碼。如:
namespace Vector
{
class Vector2 {...};
bool IsUnitVector(const Vector2& vector);
}
從而造成呼叫如:
Vector::Vector2 position;
if (Vector::IsUnitVector(position)) {...}
是對以下可接受的,例如:
class Vector2 {...};
namespace Vector2
{
bool IsUnitVector(const Vector2& vector);
}
要允許更易讀,並分組更多邏輯調用:
Vector2 position;
if (Vector2::IsUnitVector(position) {...}
要求廣泛推薦最佳實踐的問題在堆棧溢出時是無關緊要的。對這個問題沒有一個客觀正確的答案。這完全是辯論和意見的問題。例如:你聲稱「將所有內容嵌套到命名空間中」導致「可讀性較差的代碼」,但我會斷言,如果你明智地選擇了你的名字,情況正好相反。 –