C ++中层次结构的命名

时间:2011-06-05 13:35:34

标签: c++ namespaces naming-conventions class-hierarchy

我需要以下层次结构的建议,我想在C ++程序中表示。

有一个抽象类uri以及派生自它的类urlurn。 我想有一个包含uri概念源代码的目录。还应该调用名称空间.. uri。 :)

所以,我正在回答我的问题。 当命名空间已经被称为“uri”时,我如何将抽象类命名为“uri”呢? 在C ++中,这个问题通常有哪些命名约定? base,uri_base,basic_uri或你如何命名?

我的第二个问题是。在用户厌倦了命名空间之前,您有多久可以嵌套命名空间?例如,我有@ authorityquery之类的uri部分等等。 创建一个新的命名空间(例如:parts)并将这些类的源代码放在一个新的子目录中是否明智?或者这只是“过度设计”?

谢谢和问候

reeaal

3 个答案:

答案 0 :(得分:3)

命名空间不是基于,也不应该基于保存文件的实际目录。 它们的目的是将相关的类/结构/常量组合在一起并减少歧义。

将类命名为与其包含的命名空间(例如uri :: uri)相同没有问题。应该与将使用这些类的程序员一起选择名称。

答案 1 :(得分:1)

  

当命名空间已经被称为“uri”时,我如何将抽象类命名为“uri”呢?

如果需要,您可以简单地将其命名为“uri”,您可以使用与封闭命名空间同名的标识符,没有任何问题。

答案 2 :(得分:0)

您滥用名称空间。它们主要用于防止库之间的名称冲突 - 通常,每个库应该有一个命名空间。