gpt4 book ai didi

c++ - 为什么 `::` 不像运算符那样被称为 'scope resolution operator'?

转载 作者:太空狗 更新时间:2023-10-29 23:29:42 25 4
gpt4 key购买 nike

我想不出使用 :: 的情况指定范围将导致生成任何代码。我能想到的每个其他运算符实际上(至少在概念上)生成代码,它“做某事”。

那为什么是::称为“范围解析运算符”当它的行为绝不像运算符时。在我看来它更像是名字的一部分,有点像...这样的词汇。或 <>包围模板参数列表,甚至 ; .没有人打电话 ; “表达式终止运算符”。

是否有特定的原因称它为标准(引用标准中关于它如何以某种方式表现得像运算符(operator)的行为在这里是有序的)?或者这个名字只是历史包袱?

最佳答案

但它一个运算符,就像成员选择运算符 :

#include <iostream>
int n;
int main()
{
int n = 1;
std::cout << ::n << " " << n;
}

#include <iostream>
struct N {
int n = 1;
operator int() const {return 0;}
};
int main()
{
N n;
std::cout << n << " " << n.n;
}

两种情况下的输出是相同的。

关于c++ - 为什么 `::` 不像运算符那样被称为 'scope resolution operator'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51198878/

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