编程-这里为什么可以直接用作用域运算符::?

问题描述

这里为什么可以直接用作用域运算符::?

解决方案

你是不是定义了一个全局的swap函数?如果要调用本类中同名的全局函数时,打上::以示区别。就跟下面的x全局变量是同一个道理
int x;
int main()
{
  int x;
  x=1;
  ::x=2;
  cout<<"局部变量x="<<x<<endl;//1
  cout<<"全局变量x="<<::x<<endl;//2
  return0;
}

解决方案二:

::代表当前全局的命名空间,限定访问的对象

时间: 2024-07-28 16:48:16

编程-这里为什么可以直接用作用域运算符::?的相关文章

c++作用域运算符用法(全局变量和局部变量)_C 语言

通常情况下,如果有两个同名变量,一个是全局变量,另一个是局部变量,那么局部变量在其作用域内具有较高的优先权,它将屏蔽全局变量. 作用域运算符 复制代码 代码如下: #include<iostream>using namespace std;int num=10;int main(){   int num;    num=25;    cout<<"num is "<<num<<endl;    return 0;} 程序的输出结果是num

shell编程--基本格式,基本语法,运算符,expr,(()),$[]

02/shell编程 Shell是用户与内核进行交互操作的一种接口,目前最流行的Shell称为bash Shell Shell也是一门编程语言<解释型的编程语言>,即shell脚本<就是在用linux的shell命令编程> 一个系统可以存在多个shell,可以通过cat /etc/shells命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同的 2.1 基本格式 代码写在普通文本文件中,通常以 .sh为后缀名 vi hello.sh #!/bin/bash 

《R语言编程艺术》——2.6 向量化运算符

2.6 向量化运算符 假设我们希望对向量x中的每一个元素使用函数f().在很多情况下,我们可以简单地对x调用f()就能完成.这可以简化我们的代码,不仅如此,还能将代码运行效率显著提高到数百倍甚至更多.提高R代码执行速度的有效方法之一是向量化(vectorize),这意味着应用到向量上的函数实际上应用在其每一个元素上.2.6.1 向量输入,向量输出之前在本章你已经看到向量化运算的一些例子,即+和*运算符.另一个例子是>. 在这里,>函数分别运用在u[1] 和v[1],得到结果TRUE,然后是u[

《Python面向对象编程指南》——2.6 比较运算符方法

2.6 比较运算符方法 Python有6个比较运算符.这些运算符分别对应一个特殊方法的实现.根据文档,运算符和特殊方法的对应关系如下所示. x < y调用x.__lt__(y). x <=y调用x.__le__(y). x == y调用x.__eq__(y). x != y调用x.__ne__(y). x > y调用x.__gt__(y). x >= y调用x.__ge__(y). 我们会在第7章"创建数值类型"中再探讨比较运算符. 对于实际上使用了哪个比较运算

详解C++编程中类的成员变量和成员函数的相关知识_C 语言

C++类的成员变量和成员函数 类是一种数据类型,它类似于普通的数据类型,但是又有别于普通的数据类型.类这种数据类型是一个包含成员变量和成员函数的一个集合. 类的成员变量和普通变量一样,也有数据类型和名称,占用固定长度的内存空间.但是,在定义类的时候不能对成员变量赋值,因为类只是一种数据类型,本身不占用内存空间,而变量的值则需要内存来存储. 类的成员函数也和普通函数一样,都有返回值和参数列表,它与一般函数的区别是:成员函数是一个类的成员,出现在类体中,它的作用范围由类来决定:而普通函数是独立的,作

拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录

目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高级主题 两大部分,以 Python 2.x 作为主要演示版本,涵盖的知识面广,知识点较齐全,代码多且好理解,但对 Python 版本特性的内容太久远,不合时宜. 整体来说 Python 核心 部分是主要内容,高级主题 部分作为应用扩展内容.后半部分篇幅较短,内容不够深入,只到了解的层面,好在横向够广(每一个主

为什么不能使用&quot;==&quot;运算符判断两个浮点数是否相等

在大多数编程语言中,使用"=="运算符判断两个浮点数是否相等的结果都是难以确定的,并且几乎总是无意义的,在编程实践中应该完全禁止使用"=="运算符去判断两个浮点数是否相等. 一个问题及其分析 如若不信,可以先试着运行下面这段js代码,看看它的输出结果: console.log(0.1 + 1 - 1 == 0.1); 在Chrome Console中,上面这句代码的输出是false,意味着(0.1+1-1)这个数不等于0.1! 看上去加减法互为逆运算的这一基本运算法

玩转C++运算符重载

运算符重载语法:返回值类型  operator运算符(参数列表) {  代码逻辑... } C++中的运算符重载是通过函数来实现的,可以将重载的运算符看作是类成的一个成员函数,向普通函数一样调用.如重载String类的 + 运算符,调用的时候可以这样: class { // ..... String operator+(const String &str) { .... } } String str1 = "hello "; String str2 = "cplusp

《C++语言入门经典》一2.4 运算符

2.4 运算符 运算符就是具有运算功能的符号.C++语言中有丰富的运算符,其中有很多都是从C语言 继承下来的,它新增的运算符有作用域运算符(::),成员指针运算符(->). 和C语言一样,根据使用运算符的对象个数,C++语言中可以将运算符分为单目运算符. 双目运算符和三目运算符.根据使用运算符的对象之间的关系,可以将运算符分为算术运算 符.关系运算符.逻辑运算符.赋值运算符.位运算符.移位运算符.sizeof 运算符.条件运 算符和逗号运算符. 2.4.1 算术运算符 算术运算主要是指常用的加(