gpt4 book ai didi

c++ - 为成员函数或变量使用类型名称是一种不好的做法吗?

转载 作者:行者123 更新时间:2023-11-30 04:37:23 25 4
gpt4 key购买 nike

如果答案是肯定的,你能告诉我为什么吗?这是一个例子:

namespace urx {
struct reserved { };
struct side { urx::reserved reserved() { /*...*/ } };
}

int main() {
urx::side side;
side.reserved();
}

reserved 用于类型名称和函数名称。side 用于类型名和变量名。但在这两种情况下,它们都由 urx 命名空间分隔,我总是明确指定 urx 以引用类型名称(为了可读性)。

最佳答案

我不明白为什么这会很糟糕。我想我宁愿用好名字一致地命名我的成员函数,也不愿发明难以记住的人工名称来消除它们的歧义。

一些编码指南是这样编写的,这样就不会发生这种情况。通过强制类型以大写字母开头,函数以小写字母开头等等。

尽管如此,您应该避免根据通用模板名称调用您的成员函数。根据当前的 C++ 标准,以下程序格式错误,尽管一些编译器倾向于(为了好的)忽略该错误。 Clang 和 comeau 发出警告

#include <vector>
using namespace std;

struct A {
template<typename T>
T vector();
};

int main() {
A a;
a.vector<int>(); // ill-formed!
}
"ComeauTest.c", line 11: warning: ambiguous class member reference -- function            template "A::vector" (declared at line 6) used in preference to            class template "std::vector" (declared at line 163 of            "stl_vector.h")  a.vector(); // ill-formed!    ^

It has been proposed摆脱这个。

关于c++ - 为成员函数或变量使用类型名称是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3845019/

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