|
|
1
114
C++中正确使用命名空间的一个很好的例子是C++标准库。这个相当大的库中的所有内容都放在一个名为 -没有尝试或需要将库分解为(例如)I/O子命名空间、数学子命名空间、容器子命名空间等。 C++中建模的基本工具是类(在某种程度上是模板),而不是命名空间。如果您觉得需要嵌套,则应该考虑使用嵌套类,它具有优于名称空间的以下优点:
|
|
2
24
C++命名空间比以前的版本有很大的改进(即根本没有命名空间)。C#名称空间扩展了这个概念并与之一起运行。我建议您将名称空间保持在一个简单的平面结构中。 编辑 由于我在这里概述的缺点,你建议这样做吗?
C++命名空间的目的是阻止C开发人员遇到的现实世界问题,在使用两个第三方LIBs导出相同函数名时,它们会遇到名称冲突。C开发人员对此有各种解决办法,但这可能是一个严重的难题。
想法是STL etc具有
|
|
|
3
20
当前瞻性声明如下所示时,我会做什么:
我的正向声明被折叠成一行。转发声明的可读性被牺牲,以换取其余代码的可读性。对于定义,我也不使用缩进:
由于C++17,您可以使用问题作者提出的语法来声明名称空间。
|
|
|
4
8
然后将A::B::C::D引用为foo。但只有在某些情况下。 |
|
|
5
6
C++源代码最终编译成二进制,不像C/j/java中的二进制。因此,名称空间只是为变量命名冲突提供了一个很好的解决方案。它不适用于类层次结构。 我经常在代码中保留一到两个名称空间级别。 |
|
|
6
4
首先,可以避免名称空间缩进,因为没有理由这样做。
只是不要在一个.h文件中混合使用不同的命名空间层次结构。名称空间是函数接口声明的一种额外注释。查看名称空间和类名应该可以解释很多东西。
|
|
|
7
0
我发现你可以像这样模仿c#名称空间;
但代码似乎不是很整洁。我希望有冗长的用法
这仍然有点冗长。但确实感觉有点糟糕。 并听到它似乎是最好的做法
听说用法会是什么样子
C++中命名空间的最佳用法是停止说我的超级CUT函数(每次调用它的TEN),使之与STD::CUT函数混合(这远不如印象深刻)。 仅仅因为C和C++有名字空间,并不意味着命名空间是相同的。它们既不同又相似。C++的命名空间的思想必须来自C++命名空间。一定有人已经看到了相似但不同的东西可以做什么,并且没有足够的想象力来给它起自己的原始名称,比如“ClassPath”,这将更有意义,因为它是类的路径,而不是提供每个空间都可以有相同名称的命名空间 我希望这对某人有帮助 我忘了说所有这些方法都是有效的,前两种方法的适度使用可以结合到第三种方法中,以创建一个有意义的库ie(不是很好的例子)
和
因此,您可以使用更改精度级别
然后为双精度POINT2创建PREC::POINT2的实例 对于c#或java名称空间来说,这不是一件容易的事情 显然,这只是一个例子。想想这个用法是怎么读的。 |
|
|
8
-1
|
|
|
9
-1
namespace.h
要在其他地方使用它: 另一个文件
|