问题标签 [scope-resolution]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
311 浏览

c++ - isalnum 的范围解析运算符

我问这个作为这个问题的后续行动。上一个问题是大约三年前提出的,所以我认为问一个新问题会更好。

我链接到的那个问题的症结在于 OP 试图运行以下代码行:

在某个容器上s。该行代码编译失败,OP应该这样做

接受的答案指出,localeandcctype库中有 isalnum 函数,并且编译器在消除两者之间的歧义时遇到了麻烦,因此使用了::范围解析运算符。我通过仅包含其中一个库对其进行了测试,但编译器仍然存在消除歧义的问题。这是为什么?如果我只包含其中一个库,那么显然编译器不应该“知道”另一个库,那么为什么会发生冲突呢?

我的问题的第二部分是,::操作员如何告诉我们isalnum我们想要哪个功能?

谢谢

编辑

我知道::运算符告诉我们我们想要的函数/变量在全局范围内,但这仍然不能回答我的第二个问题。

0 投票
2 回答
1491 浏览

c++ - 如何为嵌套类编写范围解析运算符函数头?

嘿,我有一个相当简单的问题,一些快速的谷歌搜索无法解决,所以我来这里寻求帮助。

我在完成我的任务时遇到了麻烦,因为我什至无法编写骨架代码!

基本上我有一个像这样的头文件:

而且我想知道如何在实现文件中引用文件之外的这些人。

奖金:

这些函数是怎么称呼的?

在这方面有没有我可以遵循的公式,还是更灵活、更适合您的需求?

谢谢您的帮助!

如果这改变了任何东西,我正在使用视觉工作室......

0 投票
1 回答
760 浏览

c++ - 如何调用与类成员同名的函数

如何从定义同名成员函数的类中调用非成员函数listen()(包括从) ?sys/socket.hlisten()

0 投票
1 回答
2744 浏览

java - java中类名后的冒号是什么

我对 java 代码中的冒号有疑问,在下一段代码中,该行OuterClass:showMsg(text);和该行OuterClass:InnerClass:showMsg(text);没有给出错误,并且让我认为冒号字符的工作原理类似于 C++ 中的双冒号(范围解析),但运行后的输出让我离开有个问题,冒号是干什么用的?

输出:

使用 jdk1.8.0_25 和 maven-3.2.3 在 windows 7 上测试

0 投票
1 回答
711 浏览

c++ - Pimpl,私有类前向声明​​,范围解析运算符

考虑使用 Pimpl 习语的这两个类:

ClassA:Pimpl 类前向声明​​和变量声明在不同的行上

类A.h:

A类.cpp:


ClassB:Pimpl 类前向声明​​和变量声明在一行

B类.h:

B类.cpp:


问题:

  1. 为什么在 ClassB.h 中将前向声明和变量声明组合在一行中,在 ClassB.cppClassB_Impl中的私有类的实现中需要“无作用域”?

    即在 ClassA.cpp 中,私有类方法定义以

    但在 ClassB.cpp 中,私有类方法定义以

    /li>
  2. 每种方法的含义是什么?哪一个更好?

  3. 回应Galik回答的后续问题

    当您在一个语句中组合一个类的前向声明和该类的变量声明时......

    ...这个叫什么?这种组合语句有名称吗?由于这样的陈述,为什么不ClassB_Impl成为一个内部类?ClassB

    将此与...进行比较

    ...在这种情况下ClassA_Impl 确实成为ClassA.

    为什么单行放入ClassB_Impl全局命名空间,而二行ClassA_Impl放入ClassA's 命名空间?为什么它们不同?

0 投票
1 回答
92 浏览

c++ - 应用范围解析运算符会导致编译器阻塞

我正在使用 SDL 的 RenderCopy 功能:

最后两个参数是复制图像的源矩形和目标矩形,它需要一个指向矩形的指针,上面的代码按预期工作,它们再次被键入为“SDL_Rect Game::mSourceRect” ,正如您对成员变量所期望的那样。

每当我尝试将范围解析运算符应用于矩形时,当它们传递给此函数且仅此函数时,我都会遇到问题:

错误是:

如果您检查 &Game::mSourceRect 的类型,它会解析为与我不使用范围解析运算符完全相同的东西,那么我的问题是为什么这会导致代码无法编译?

在错误列表中,它显示“SDL_Rect Game::* 与类型为“const SDL_Rect *”的参数不兼容”,如果这有帮助的话。

我不能对这两个参数使用范围解析运算符,但我习惯性地只使用它,因为我整天都在写 C#,而且我经常通过它们的命名空间显式访问事物,所以我很难不定义范围我经常这样做(加上明确界定这样的事情一开始并不是一件坏事,所以我想坚持下去)。

0 投票
2 回答
595 浏览

c++ - 编译g ++时不在范围内声明

这是我的 Ah 文件

这是我的 A.cpp 文件

我试着把

在我的 cpp 文件的顶部,但它仍然无法编译。它给了我错误

在函数'int main()'中:A.cpp:112:13:错误:'menuChoice'未在此范围内声明menuChoice();

我该如何编译:g++ A.cpp 啊

按理说,我什至不需要声明 cpp 顶部的函数,因为我已经在我的头文件中声明了它,并且我已经包含在我的 .cpp 中。这里出了什么问题?

编辑:

错误 :

0 投票
2 回答
2235 浏览

c++ - c++ - 遍历 3 个元素的映射

我对在 C++ 中使用 STL 容器非常陌生。

我有一个包含 3 个元素的映射(2 个字符串作为一对 - 作为键,一个 int 作为值。)

但是当我尝试像这样迭代它时:

编译器抛出错误:

不知道我在这里做错了什么 - 这应该是一个简单的修复。

0 投票
1 回答
787 浏览

sql - SQL SERVER 中的范围解析运算符

Scope Resolution Operator (::)使用in有什么意义SQL SERVER。众所周知,当我们使用GRANT命令时,Scope Resolution Operator 将成为语法的一部分。

它是否有任何特定含义,或者它就是这样使用的。

0 投票
2 回答
467 浏览

c++ - C++-“使用”关键字或使用具有范围解析运算符的命名空间名称

C++ 中的各种程序都是在不使用范围解析运算符的情况下编写的:

而且我还看到使用“使用”关键字:

出于效率原因,哪一个更好?