C++范围解析运算符::的使用
1.范围解析运算符的作用
范围解析运算符 :: 用于标识不同范围内使用的标识符。
2.范围解析运算符的使用
1)用于命名空间和类
- namespace NamespaceA{
- int x;
- class ClassA {
- public:
- int x;
- };
- }
- int main() {
- NamespaceA::x = ;
- NamespaceA::ClassA a1;
- a1.x = ;
- }
2)没有范围限定符的表示全局命名空间。
- namespace NamespaceA{
- int x;
- }
- int x;
- int main() {
- int x;
- x = ;
- // 全局命名空间
- ::x = ;
- NamespaceA::x = ;
- }
3)标识通过 using 指定成员的命名空间的命名空间
- namespace NamespaceB {
- class ClassB {
- public:
- int x;
- };
- }
- namespace NamespaceC{
- using namespace B;
- }
- int main() {
- NamespaceB::ClassB c_b;
- NamespaceC::ClassB c_c;
- c_b.x = ;
- c_c.x = ;
- }
4)标识嵌套的命名空间,标识嵌套的类
- namespace NamespaceD{
- namespace NamespaceD1{
- int x;
- }
- }
- namespace NamespaceE{
- class ClassE{
- public:
- class ClassE1{
- public:
- int x;
- };
- };
- }
- int main() {
- NamespaceD:: NamespaceD1::x = ;
- NamespaceE::ClassE::ClassE1 e1;
- e1.x = ;
- }
5)调用类的静态成员
- class ClassG {
- public:
- static int get_x() { return x;}
- static int x;
- };
- int ClassG::x = ;
- int main() {
- int gx1 = ClassG::x;
- int gx2 = ClassG::get_x();
- }
6)用于枚举
- enum EnumA{
- First,
- Second,
- Third
- };
- int main() {
- EnumA enum_value = EnumA::First;
- }
参考资料:https://msdn.microsoft.com/zh-cn/library/b451xz31.aspx
C++范围解析运算符::的使用的更多相关文章
- Python基础部分的疑惑解析——运算符和数据类型(5)
运算符 最后得到数值的: 算数运算符 赋值运算符 最后得到布尔值的: 成员运算符:in not in 逻辑运算符 and or 没有优先级就是按顺序执行 比较运算符 数据类型 1.整 ...
- C指针解析 ------ 运算符&和*
本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 & 是取地址运算符.* 叫做指针运算符或间接运算符.&a 的运算 ...
- python3精品解析运算符
算数运算符 +:两个对象相加 -:得到负数或者,或者一个数减去另一个数 *:两个数相乘或者是返回一个被重复若干次的字符串 /:5/2等于2.1 5//2=2(/有余数,//取整) %:取模(5%2=1 ...
- Python基础部分的疑惑解析——运算符和数据类型(3)
补充上一篇: #! /user/bin/env python 代码内声明这一个就可以用1.py类似的文件直接执行,但是要在linux内加权限, 不需要在前面加python 1.py执行了.文件可以 ...
- C++解析四-友员函数、内联函数、静态成员
友元函数 类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员.尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数.友元可以是一个函 ...
- C++ 解析一
C++ 类和对象C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计.类是 C++ 的核心特性,通常被称为用户定义的类型.类用于指定对象的形式,它包含了数据表示法和用于处理数据 ...
- 雷林鹏分享:Ruby 运算符
Ruby 运算符 Ruby 支持一套丰富的运算符.大多数运算符实际上是方法调用.例如,a + b 被解释为 a.+(b),其中指向变量 a 的 + 方法被调用,b 作为方法调用的参数. 对于每个运算符 ...
- 关于C++ 命名空间Namespace 的解析
使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突.在C++中,变量.函数和类都是大量存在的.如果没有命名空间,这些变量.函数.类的名称将都存在于全局命名空间中,会导致很多冲突.比如,如果我 ...
- [c++] Templates
Template是编译时多态.所有的模板都是在编译时产生对应的代码,它没有面向对象中的虚表,无法实现动态多态. Function Template A function template is a p ...
随机推荐
- java 笔试之在线模拟
网站地址: https://www.nowcoder.com
- java正则表达式简介
Java的正则表达式讲解:(为了能看清,本文正则表达式用中文的句号代替英文句点) 1 英文句点符号:匹配单个任意字符. eg: 表达式”t.o 可以匹配:tno,t#o,teo等等.不可以匹配:tn ...
- 笔试题之ejb
ejb部分 1.EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别. EJB包括Session Bean. ...
- win10 切换 简体/繁体中文
- EXCEPTION-TOMCAT
CreateTime--2016年10月24日16:22:12Author:Marydon声明:异常类文章主要是记录了我遇到的异常信息及解决方案,解决方案大部分都是百度解决的,(这里只是针对我遇到 ...
- KnockoutJS + My97DatePicker
如何将Knockoutjs和其他脚本库结合使用?这里给出一个Knockoutjs与my97datepicker配合使用的例子,例子中使用了ko的自定义绑定功能: ko.bindingHandlers. ...
- HTTP协议是如何通信的
一.什么是HTTP协议 HTTP协议是HyperText Transfer Protocol的缩写,即超文本传输协议.是由w3c(万维网联盟)制定的一种应用层协议,用来定义浏览器与web服务器之间如何 ...
- Windows下安装OpenSSL及其使用
方法一: Windows binaries can be found here: http://www.slproweb.com/products/Win32OpenSSL.html You can ...
- OpenStack 网络:Neutron 初探
OpenStack Neutron 网络模型 OpenStack nova-network 独立成为单独的组件 Neutron 后,形象的网络模型的多平面网络.混合平面私有网络.如图 3,图 4,图 ...
- 用JSON-server模拟REST API
来源于: 用JSON-server模拟REST API(一) 安装运行 用JSON-server模拟REST API(二) 动态数据 用JSON-server模拟REST API(三) 进阶使用 在开 ...