gpt4 book ai didi

c++ - 如何减轻文件中远离其所有者命名空间声明的类声明?

转载 作者:行者123 更新时间:2023-11-30 01:00:54 26 4
gpt4 key购买 nike

因此,我已经看到 namespace 对于将声明组织到各自的组中是多么有用,但现在出现了一个问题。

在 C 中创建库和在 C++ 中创建库的区别在于,在 C 中,您必须在声明前加上它们所属的前缀,例如,我们将命名为 MyMath 的库可能有一个 vector 类,名字可能是MM_Vector。

在 C++ 中,您将拥有一个命名空间 MyMath,其中声明了一个 Vector 类。

现在这里的区别在于 C,只需转到类声明,您就会立即知道如何使用它。在 C++ 中,您必须检查特定类属于哪个命名空间(实际上只有在声明不在​​命名空间声明附近的文件中才会出现问题,如果在两者之间声明了常量和枚举,这可能很常见)。虽然我更喜欢使用命名空间进行组织,但我认为这仍然是一个令人烦恼的有效论点。

人们做了什么来减少这种烦恼?

最佳答案

his book 的第 8 章中, Stroustrup 推荐如下样式:

MyMath.h

namespace MyMath {
class Vector;
};

Vector.h

#include "MyMath.h"

class MyMath::Vector {
public:
Vector();
// ...
};

Vector.cc

#include "Vector.h"

MyMath::Vector::Vector() { /* ... */ }

将开放命名空间声明限制为对其内容的声明会生成简短的摘要。完全限定的定义允许编译器捕获拼写错误。

根据您的关注,这种风格的类声明和定义明确了每个类的父命名空间——以牺牲 Go 人员所说的 stuttering 为代价。 .

关于c++ - 如何减轻文件中远离其所有者命名空间声明的类声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1827858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com