问题标签 [scope-resolution-operator]
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++ 中的函数访问全局变量?
我想从函数访问分配给主函数中全局变量的值。我不想在函数中传递参数。
我试过参考不同的堆栈溢出类似的问题和 C++ 库。
我希望输出是,5
但它显示0
。
c++ - 运算符重载中的范围运算符
我无法理解运算符重载中的范围运算符。当他们不使用它时,有一些例子。当我应该写时我T::operator.
可以只写操作符仍然可以正常工作还是建议使用::?
这个例子:
原型示例(用于类 T) 类定义内部
我可以这样写T& operator +=(const T2& b){}
还是应该一直这样写T& T::operator +=(const T2& b){}
php - 字符串解析运算符到对象
如何从以下字符串创建对象:
Normaly 你会删除引号,但它是一个动态调用,例如
我想要达到的是创建一个简单的函数,您可以在其中提供类名和 const 以获取其值。
c++ - 为什么我不能使用 A 的对象调用 showA()?
为什么我们可以在没有对象的情况下调用 showA() 方法?但是如果我在方法定义中使用 void A::showA(A& x) 那么我必须使用 A 的对象来调用它,为什么?
c++ - 用于返回嵌套类类型的范围解析运算符
我知道范围解析运算符::
用于识别和消除不同范围中使用的标识符。
在此处提供的示例中,C++ 定义类成员结构并在成员函数中返回它
您可以创建一个返回嵌套类类型的成员函数userInfo
。
- 为什么必须在函数定义中声明两次作用域?
UserInformation::UserInfo UserInformation::getInfo(int userId)
如果只声明一次是错误的,但据我了解,我认为在开始时声明一次,在返回值之前将我们置于正确的范围内? - 在上面的函数中,我添加
Userinfo x;
以表明可以在没有范围解析运算符的情况下声明和使用嵌套类类型。为什么允许这样做?
c++ - 离线成员函数定义是否需要完全限定的类名到全局范围?
这个问题让我想知道在类外成员函数定义中完全限定类名(包括全局范围运算符)是否有用/有必要。
一方面,我以前从未见过这样做(而且正确执行此操作的语法似乎晦涩难懂)。另一方面,C++ 名称查找非常重要,因此可能存在极端情况。
问题:
是否存在引入类外成员函数定义
ReturnType (::Fully::Qualified::Class::Name::MemberFunctionName)(...) { ... }
不同于
ReturnType Fully::Qualified::Class::Name::MemberFunctionName(...) { ... }
(无全局范围::
前缀)的情况?
请注意,成员函数定义必须放在包含类的命名空间中,因此这不是一个有效的示例。
php - 理解范围解析运算符在 PHP 语言中的定义
在 php 手册中,他们将范围解析运算符定义如下:
范围解析运算符(也称为 Paamayim Nekudotayim)或更简单的术语是双冒号,是一个允许访问类的静态、常量和重写属性或方法的标记。
我的理解是,由于我们无法使用 评估静态属性、类常量和静态方法$this
,因此我们需要::
. 我不明白为什么::
允许从类内部评估非静态函数。可以说,子类可能想用 评估父类中定义的方法parent::baseClassMethod()
,但它可能也想评估父类中定义的属性,但::
无法评估属性。可以说父类的属性是继承的,所以我们可以简单地用 来评估它们$this->prop
,但方法也是如此。我们::
仅在子类中重写方法时才使用 for 方法。同样我们需要::
评估子类中的覆盖属性。与 php 手动定义相反,如果您尝试使用 评估覆盖的属性::
,则会引发错误。
为了说明我的观点,我有以下示例 PHP 代码:
总结一下,我主要有两个具体问题:
- 为什么我们不能访问
::
定义中定义的覆盖属性? ::
与定义相反,为什么我们可以访问类中的非静态函数?
PS:在stackoverflow上也提出了类似的问题。不存在令人满意的答案,而且我正在寻找更适合programmers.stackexchange 的概念性和有见地的答案。
c++ - is_const<> 的调用版本,但用于变量而不是类型,在一行中
嗨,我正在学习 c++,我读到了诸如 is_const 之类的类型特征。is_const 可以在一行中调用,例如,
我制作了自己的 is_const 版本,但要测试变量是否为 const,并且可以这样使用,
我也想在一行中调用 check_const ,但是编译器不断给我错误,例如
当我尝试这样称呼它时
如何更改 check_const,以便可以在一行中调用它?
c++ - 如何在 cpp 中使用范围解析运算符创建专业化模板
问题是最后一段代码。 编译错误 -> 错误:'int Temp::increment()' 的模板 ID 'increment<>' 与任何模板声明都不匹配
c++ - 函数之前的 C++ 范围解析运算符
为什么不需要Test::
before F(t)
?
这背后的规律是什么?