不同命名空间中的派生类

3
是否建议避免在与其父命名空间不同的命名空间中创建派生类?例如:
namespace NA {
class A {};
}

namespace NB {
class B : NA::A {}
}

B 不是子类,而是派生类。 - NathanOliver
@HolyBlackCat 这不是基于观点的。如果没有技术上的利弊,答案可能是“这取决于你的观点”,但这是对客观问题的有效回答。 - Quentin
2
@NathanOliver,子类和派生类不是同义词吗? - Darryl
1
@Darryl 我猜可能是这样。我以前从未听说过它们被称为这个。不知何故,当我听到子类时,嵌套类就会浮现在我的脑海中。 - NathanOliver
像很多这样的编程问题一样,答案是——取决于情况。首先,您必须考虑是否真的需要将派生类放在不同的“命名空间”中(即它有什么好处?),而不是将其保留在基类的命名空间中。仅仅因为可以这样做,并不意味着它是最好的设计。 - sjrowlinson
显示剩余2条评论
1个回答

2

命名空间用于将代码组织成逻辑组,并防止名称冲突,特别是当您的代码库包括多个库时。

如果您认为类A和类B应该属于不同的命名空间(组),则将它们放在不同的命名空间(组)中。当您需要访问/继承一个类时,只需按照命名空间标准进行访问/继承即可。

我认为这里没有任何问题,相反,这是一种好的实践。

谢谢!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接