如果你转到这篇文章的接受答案
有人可以详细说明他使用的原因:
double temp = ::atof(num.c_str());
Run Code Online (Sandbox Code Playgroud)
而不是简单的
double temp = atof(num.c_str());
Run Code Online (Sandbox Code Playgroud)
此外,当您使用"纯"全局函数时,使用该语法是否是一种好习惯?
Ski*_*ick 38
它说使用全局版本,而不是在本地范围内声明的版本.因此,如果有人atof在你的班级宣布了,那么肯定会使用全球的.
看看这个主题的维基百科:
#include <iostream>
using namespace std;
int n = 12; // A global variable
int main() {
int n = 13; // A local variable
cout << ::n << endl; // Print the global variable: 12
cout << n << endl; // Print the local variable: 13
}
Run Code Online (Sandbox Code Playgroud)
Jos*_*osh 19
::是范围解析运算符.它在这种情况下使用,作为一元运算符,是为了确保该名称(atof)在全球范围内总是抬头 -这可能是有用的,以防止名称从与查找干扰隐藏.
::运算符是作用域解析运算符。
与类说明符(如A :: a)一起使用时,它将访问类A的数据成员a。在没有任何说明符的情况下使用时,它将访问全局变量。
它主要用于以下比赛。
| 归档时间: |
|
| 查看次数: |
22458 次 |
| 最近记录: |