问题标签 [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++ - 私有派生析构函数
当我试图以多态方式删除派生对象(即:基类具有公共虚拟析构函数)时,为什么仍在调用派生类私有析构函数?为什么私有范围解析在这里不起作用。
输出:
c++ - 我们什么时候在 new (::new) 之前使用范围解析运算符?
我遇到了一个代码,其中范围解析运算符放在new之前。我们什么时候使用它。它的含义是什么。请问有人可以解释吗?
c++ - 当成员函数在其类定义之外定义时,范围解析运算符是否可以在成员函数的定义中使用?
当成员函数在其类定义之外定义时,范围解析运算符是否可以在成员函数的定义中使用?像这样:
我的老师给了我们一些笔记,演示了仅对公开的成员函数使用范围解析运算符。任何人都可以清除这个吗?
c++ - C++ 语法“A::B:A {};”是什么意思?意思是
C++ 语法struct A::B:A {};
是什么意思?C++ 标准中描述的名称定义(或访问)在哪里?
c++ - 如何在 C++ 中访问函数范围变量?
可以使用 :: 运算符在函数内访问全局范围的变量。由于全局范围没有名称,因此 :: 的左侧可能为空。我将如何访问在函数范围中定义的变量,该变量稍后在函数本身的块中被覆盖。在下面的代码中,我将如何访问初始化为 1 的变量?
c++ - 如何在 C++ 中访问没有范围解析运算符的标头成员类型?
我正在学习 C++,这可能是一个愚蠢的问题。
我想为通用类型定义创建一个类,并通过 inluding 在许多 cpp 文件中使用它。标题是“CommonTypesCls.h”:
我想像这样在 source.cpp 中使用这些属性:
是否可以在没有范围解析的情况下使用包含类的成员类型?
c++ - 为什么`::`不像操作符那样被称为“范围解析操作符”?
我想不出使用::
指定范围会导致生成任何代码的情况。我能想到的每个其他运算符实际上(至少在概念上)都会生成代码,它“做某事”。
那么,当它的行为与 operator 完全不同时,为什么将其::
称为“范围解析运算符” 。在我看来,它更像是名称的一部分,有点像或围绕模板参数列表的词汇绒毛,甚至. 没有人称“表达式终止运算符”。...
<
>
;
;
是否有特定的原因被称为(标准中关于它如何以某种方式表现得像这里的操作员一样的引用)?或者这个名字只是历史包袱?
c++ - 显式调用 typedef'd 类类型的析构函数的正式正确方法
这个问题与:C++: Explicitly call destructor of template parameter's typedef有关:
我有以下内容:
后来,我通过placement new获得了一个ptr
类型的变量A::Ptr *
,基本上是通过调用这样的函数:
我现在想通过显式的析构函数调用撤消placement-new。我这样做:
正如对链接问题的答案的评论中所说,这适用于 gcc,但不适用于 clang。§ 12.4p13 标准说
在显式析构函数调用中,析构函数名称显示为 ~ 后跟表示析构函数的类类型的类型名称或decltype 说明符。
但我不确定这如何与 typedef 和范围解析相互作用。所以,我的问题是:
- 在上述情况下显式调用析构函数的符合 C++-11 标准的方法是什么(理想情况下不透露 的类型
Ptr
)? - 1 的答案在 gcc 和/或 clang 中有效吗?如果没有,普遍接受的解决方法是什么?
java - 无法使用 :: 运算符将新列表初始化为地图的值?
在从事纸牌游戏项目时,我试图创建一个新地图,同时已经有一个我想用作 KeySet 的列表。地图必须使用 Player 类型的键,并且每个键都包含一个由单个 组成的值List<Trick>
,其中 Player 是一个接口,而 Trick 是一个类。
最初,我尝试使用List<Player> players
我拥有的 Stream,然后通过以下方式将其收集到 Map:
但是,我的 IDE IntelliJ 不允许我使用这种格式,因为它说“无法解析构造函数 ArrayList”。
令我惊讶的是,当我删除::
-Operator 时,IDE 不再抱怨:
虽然我现在确实有没有异常的代码,但我仍然不明白为什么 Scope Resolution Operator 会产生这样的错误。如果有人能正确解释,我将不胜感激。
PS 在寻找解决方案时,我发现了这个 StackOverflow 线程:
它确实涉及类似的问题,但并没有真正解决我面临的问题。
c++ - C ++中“::delete”的目的是什么?
我目前正在查看::delete
用于删除指针的 C++ 代码。
一个毫无意义的例子是:
以这种方式使用 delete 关键字的目的是什么?