gpt4 book ai didi

c++ - 外线成员函数定义是否需要全局范围内的完全限定类名?

转载 作者:行者123 更新时间:2023-12-01 19:26:03 26 4
gpt4 key购买 nike

This这个问题让我想知道在类外成员函数定义中完全限定类名(包括全局范围运算符)是否有用/必要。

一方面,我以前从未见过这样做(并且正确执行此操作的语法似乎很晦涩)。另一方面,C++ 名称查找非常重要,因此可能存在特殊情况。

问题:

是否存在通过
引入类外成员函数定义的情况ReturnType (::Fully::Qualified::Class::Name::MemberFunctionName)(...) { ... }
会不同于
ReturnType Complete::Qualified::Class::Name::MemberFunctionName(...) { ... } (无全局范围 :: 前缀)?

请注意,成员函数定义必须放入包含该类的命名空间中,因此 this不是一个有效的示例。

最佳答案

using-directive 可能导致 Fully 在没有限定的情况下不明确。

namespace Foo {
struct X {
};
}

using namespace Foo;
struct X {
void c();
};

void X::c() { } // ambiguous
void ::X::c() { } // OK

关于c++ - 外线成员函数定义是否需要全局范围内的完全限定类名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58914180/

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