C++大学教程(第九版)9.3作用域分辨运算符(最全用途)

2024-02-21 13:44

本文主要是介绍C++大学教程(第九版)9.3作用域分辨运算符(最全用途),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

9.3作用域分辨运算符的的用途

1.访问类的静态成员

2.解决命名冲突

3.访问枚举成员

4.访问命名空间成员

5.嵌套类的访问



 

9.3作用域分辨运算符的的用途

作用域解析运算符(Scope Resolution Operator)是C++中的一种运算符,用于指定标识符的作用域。它以两个冒号(::)表示。

1.访问类的静态成员

class MyClass {
public:static int num;static void function();
};// 访问类的静态成员
MyClass::num = 10;
MyClass::function();

2.解决命名冲突

当存在多个作用域中具有相同名称的标识符时,可以使用作用域解析运算符来明确指定要使用的标识符所属的作用域。 

int num = 5;namespace MyNamespace {int num = 10;void printNum() {// 访问全局作用域的 numstd::cout << ::num << std::endl;// 访问命名空间作用域的 numstd::cout << MyNamespace::num << std::endl;}
}MyNamespace::printNum();  // 输出:5 10

3.访问枚举成员

在枚举类型中,可以使用作用域解析运算符来访问枚举的成员。 

enum MyEnum {VALUE1,VALUE2
};// 访问枚举的成员
MyEnum var = MyEnum::VALUE1;

4.访问命名空间成员

namespace MyNamespace {int num;void function();
}// 访问命名空间的成员
MyNamespace::num = 10;
MyNamespace::function();

5.嵌套类的访问

在一个类内部定义的嵌套类,可以使用作用域解析运算符来访问外部类的成员。

class Outer {
public:int num;class Inner {public:void function(Outer& obj) {// 访问外部类的成员obj.num = 10;}};
};

总结:作用域解析运算符是C++中的一个重要运算符,用于指定标识符的作用域,包括命名空间、类、结构体、枚举等。它可以用于访问命名空间成员、类的静态成员,解决命名冲突,访问嵌套类和访问枚举成员等场景。

这篇关于C++大学教程(第九版)9.3作用域分辨运算符(最全用途)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/731966

相关文章

Python中Tkinter GUI编程详细教程

《Python中TkinterGUI编程详细教程》Tkinter作为Python编程语言中构建GUI的一个重要组件,其教程对于任何希望将Python应用到实际编程中的开发者来说都是宝贵的资源,这篇文... 目录前言1. Tkinter 简介2. 第一个 Tkinter 程序3. 窗口和基础组件3.1 创建窗

利用c++判断水仙花数并输出示例代码

《利用c++判断水仙花数并输出示例代码》水仙花数是指一个三位数,其各位数字的立方和恰好等于该数本身,:本文主要介绍利用c++判断水仙花数并输出的相关资料,文中通过代码介绍的非常详细,需要的朋友可以... 以下是使用C++实现的相同逻辑代码:#include <IOStream>#include <vec

基于C++的UDP网络通信系统设计与实现详解

《基于C++的UDP网络通信系统设计与实现详解》在网络编程领域,UDP作为一种无连接的传输层协议,以其高效、低延迟的特性在实时性要求高的应用场景中占据重要地位,下面我们就来看看如何从零开始构建一个完整... 目录前言一、UDP服务器UdpServer.hpp1.1 基本框架设计1.2 初始化函数Init详解

C++ 右值引用(rvalue references)与移动语义(move semantics)深度解析

《C++右值引用(rvaluereferences)与移动语义(movesemantics)深度解析》文章主要介绍了C++右值引用和移动语义的设计动机、基本概念、实现方式以及在实际编程中的应用,... 目录一、右值引用(rvalue references)与移动语义(move semantics)设计动机1

Python中Request的安装以及简单的使用方法图文教程

《Python中Request的安装以及简单的使用方法图文教程》python里的request库经常被用于进行网络爬虫,想要学习网络爬虫的同学必须得安装request这个第三方库,:本文主要介绍P... 目录1.Requests 安装cmd 窗口安装为pycharm安装在pycharm设置中为项目安装req

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

C++构造函数中explicit详解

《C++构造函数中explicit详解》explicit关键字用于修饰单参数构造函数或可以看作单参数的构造函数,阻止编译器进行隐式类型转换或拷贝初始化,本文就来介绍explicit的使用,感兴趣的可以... 目录1. 什么是explicit2. 隐式转换的问题3.explicit的使用示例基本用法多参数构造

C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解

《C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解》:本文主要介绍C++,C#,Rust,Go,Java,Python,JavaScript性能对比全面... 目录编程语言性能对比、核心优势与最佳使用场景性能对比表格C++C#RustGoJavapythonjav