类 在不同的命名空间中具有相同的名称
Classes with same name in different namespace
我正在写一个库。有两个同名的 类 但每个 类 都在不同的命名空间中是不是一个坏主意?
使用名称空间:
//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
...
是的,这是个坏主意。
- 可以包含多个命名空间。所以这相当于写作 sparse::matrix 与 dense::matrix。
- 清晰为王。
sparse_matrix
讲述了该对象的行为。
- 他们向客户提供 similar/the 相同的实用程序。为什么命名空间不同?
如果你想让它们有一个共同的基础,做继承(抽象与否)。
总的来说,没问题。这正是名称空间的用途。在这个例子中并不清楚设计目标是什么,所以不清楚这是否是对命名空间的适当使用。
我正在写一个库。有两个同名的 类 但每个 类 都在不同的命名空间中是不是一个坏主意?
使用名称空间:
//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
...
是的,这是个坏主意。
- 可以包含多个命名空间。所以这相当于写作 sparse::matrix 与 dense::matrix。
- 清晰为王。
sparse_matrix
讲述了该对象的行为。 - 他们向客户提供 similar/the 相同的实用程序。为什么命名空间不同?
如果你想让它们有一个共同的基础,做继承(抽象与否)。
总的来说,没问题。这正是名称空间的用途。在这个例子中并不清楚设计目标是什么,所以不清楚这是否是对命名空间的适当使用。