问题标签 [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.
c++ - isalnum 的范围解析运算符
我问这个作为这个问题的后续行动。上一个问题是大约三年前提出的,所以我认为问一个新问题会更好。
我链接到的那个问题的症结在于 OP 试图运行以下代码行:
在某个容器上s
。该行代码编译失败,OP应该这样做
接受的答案指出,locale
andcctype
库中有 isalnum 函数,并且编译器在消除两者之间的歧义时遇到了麻烦,因此使用了::
范围解析运算符。我通过仅包含其中一个库对其进行了测试,但编译器仍然存在消除歧义的问题。这是为什么?如果我只包含其中一个库,那么显然编译器不应该“知道”另一个库,那么为什么会发生冲突呢?
我的问题的第二部分是,::
操作员如何告诉我们isalnum
我们想要哪个功能?
谢谢
编辑
我知道::
运算符告诉我们我们想要的函数/变量在全局范围内,但这仍然不能回答我的第二个问题。
c++ - 如何为嵌套类编写范围解析运算符函数头?
嘿,我有一个相当简单的问题,一些快速的谷歌搜索无法解决,所以我来这里寻求帮助。
我在完成我的任务时遇到了麻烦,因为我什至无法编写骨架代码!
基本上我有一个像这样的头文件:
而且我想知道如何在实现文件中引用文件之外的这些人。
奖金:
这些函数是怎么称呼的?
在这方面有没有我可以遵循的公式,还是更灵活、更适合您的需求?
谢谢您的帮助!
如果这改变了任何东西,我正在使用视觉工作室......
c++ - 如何调用与类成员同名的函数
如何从定义同名成员函数的类中调用非成员函数listen()
(包括从) ?sys/socket.h
listen()
java - java中类名后的冒号是什么
我对 java 代码中的冒号有疑问,在下一段代码中,该行OuterClass:showMsg(text);
和该行OuterClass:InnerClass:showMsg(text);
没有给出错误,并且让我认为冒号字符的工作原理类似于 C++ 中的双冒号(范围解析),但运行后的输出让我离开有个问题,冒号是干什么用的?
输出:
使用 jdk1.8.0_25 和 maven-3.2.3 在 windows 7 上测试
c++ - Pimpl,私有类前向声明,范围解析运算符
考虑使用 Pimpl 习语的这两个类:
ClassA:Pimpl 类前向声明和变量声明在不同的行上
类A.h:
A类.cpp:
ClassB:Pimpl 类前向声明和变量声明在一行
B类.h:
B类.cpp:
问题:
为什么在 ClassB.h 中将前向声明和变量声明组合在一行中,在 ClassB.cpp
ClassB_Impl
中的私有类的实现中需要“无作用域”?即在 ClassA.cpp 中,私有类方法定义以
但在 ClassB.cpp 中,私有类方法定义以
/li>每种方法的含义是什么?哪一个更好?
(回应Galik回答的后续问题)
当您在一个语句中组合一个类的前向声明和该类的变量声明时......
...这个叫什么?这种组合语句有名称吗?由于这样的陈述,为什么不
ClassB_Impl
成为一个内部类?ClassB
将此与...进行比较
...在这种情况下
ClassA_Impl
确实成为ClassA
.为什么单行放入
ClassB_Impl
全局命名空间,而二行ClassA_Impl
放入ClassA
's 命名空间?为什么它们不同?
c++ - 应用范围解析运算符会导致编译器阻塞
我正在使用 SDL 的 RenderCopy 功能:
最后两个参数是复制图像的源矩形和目标矩形,它需要一个指向矩形的指针,上面的代码按预期工作,它们再次被键入为“SDL_Rect Game::mSourceRect” ,正如您对成员变量所期望的那样。
每当我尝试将范围解析运算符应用于矩形时,当它们传递给此函数且仅此函数时,我都会遇到问题:
错误是:
如果您检查 &Game::mSourceRect 的类型,它会解析为与我不使用范围解析运算符完全相同的东西,那么我的问题是为什么这会导致代码无法编译?
在错误列表中,它显示“SDL_Rect Game::* 与类型为“const SDL_Rect *”的参数不兼容”,如果这有帮助的话。
我不能对这两个参数使用范围解析运算符,但我习惯性地只使用它,因为我整天都在写 C#,而且我经常通过它们的命名空间显式访问事物,所以我很难不定义范围我经常这样做(加上明确界定这样的事情一开始并不是一件坏事,所以我想坚持下去)。
c++ - 编译g ++时不在范围内声明
这是我的 Ah 文件
这是我的 A.cpp 文件
我试着把
在我的 cpp 文件的顶部,但它仍然无法编译。它给了我错误
在函数'int main()'中:A.cpp:112:13:错误:'menuChoice'未在此范围内声明menuChoice();
我该如何编译:g++ A.cpp 啊
按理说,我什至不需要声明 cpp 顶部的函数,因为我已经在我的头文件中声明了它,并且我已经包含在我的 .cpp 中。这里出了什么问题?
编辑:
错误 :
c++ - c++ - 遍历 3 个元素的映射
我对在 C++ 中使用 STL 容器非常陌生。
我有一个包含 3 个元素的映射(2 个字符串作为一对 - 作为键,一个 int 作为值。)
但是当我尝试像这样迭代它时:
编译器抛出错误:
不知道我在这里做错了什么 - 这应该是一个简单的修复。
sql - SQL SERVER 中的范围解析运算符
Scope Resolution Operator (::)
使用in有什么意义SQL SERVER
。众所周知,当我们使用GRANT
命令时,Scope Resolution Operator 将成为语法的一部分。
它是否有任何特定含义,或者它就是这样使用的。
c++ - C++-“使用”关键字或使用具有范围解析运算符的命名空间名称
C++ 中的各种程序都是在不使用范围解析运算符的情况下编写的:
而且我还看到使用“使用”关键字:
出于效率原因,哪一个更好?