C++中,`::`、`->` 和 `.`

C++中,::->.

在C++中,::->. 是用于访问成员(如变量、函数等)的不同操作符,它们分别用于不同的场景。以下是它们各自的作用和用法:

  1. 双冒号 :: (作用域解析操作符)

    用于指定某个标识符(如变量、函数、类型等)的作用域。这通常用于访问类的静态成员、全局变量、枚举值,或者覆盖基类中被隐藏的成员。此外,:: 也用于命名空间中的名称解析。

    • 访问静态成员:

      class MyClass {
      public:static int staticVar;
      };int MyClass::staticVar = 10;  // 使用作用域解析操作符访问静态成员
      
    • 访问全局变量(避免与局部变量名冲突):

      int globalVar = 10;void func() {int localVar = 5;std::cout << ::globalVar << std::endl;  // 使用作用域解析操作符访问全局变量
      }
      
    • 命名空间中的名称解析:

      namespace ns {int var = 10;
      }int main() {std::cout << ns::var << std::endl;  // 使用作用域解析操作符访问命名空间中的变量return 0;
      }
      
  2. 箭头 -> (成员访问操作符,用于指针)

    用于通过对象的指针访问其成员。当你有一个指向对象的指针时,需要使用 -> 来访问该对象的成员。

    • 通过指针访问成员变量和成员函数:
      class MyClass {
      public:int var;void func() { std::cout << "Hello" << std::endl; }
      };int main() {MyClass* ptr = new MyClass();ptr->var = 10;  // 使用箭头操作符访问成员变量ptr->func();   // 使用箭头操作符调用成员函数delete ptr;return 0;
      }
      
  3. . (成员访问操作符,用于对象)

    用于直接通过对象访问其成员。当你有一个对象实例时,使用 . 来访问该对象的成员。

    • 通过对象访问成员变量和成员函数:
      class MyClass {
      public:int var;void func() { std::cout << "Hello" << std::endl; }
      };int main() {MyClass obj;obj.var = 10;  // 使用点操作符访问成员变量obj.func();   // 使用点操作符调用成员函数return 0;
      }
      

总结:

  • :: 用于指定作用域,通常用于访问静态成员、全局变量和命名空间中的名称。
  • -> 用于通过对象的指针访问成员。
  • . 用于直接通过对象访问成员。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/58995.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【DBeaver】连接带kerberos的hive[Apache|HDP]

目录 一、安装配置Kerberos客户端环境 1.1 安装Kerberos客户端 1.2 环境配置 二、基于Cloudera驱动创建连接 三、基于Hive原生驱动创建连接 一、安装配置Kerberos客户端环境 1.1 安装Kerberos客户端 在Kerberos官网下载,地址如下&#xff1a;https://web.mit.edu/kerberos…

总结一些高级的SQL技巧

1. 窗口函数 窗函数允许在查询结果的每一行上进行计算&#xff0c;而不需要将数据分组。这使得我们可以计算累积总和、排名等。 SELECT employee_id,salary,RANK() OVER (ORDER BY salary DESC) AS salary_rank FROM employees;2. 公用表表达式 (CTE) CTE 提供了一种更清晰的…

1.探索WebSocket:实时网络的心跳!

序言 你可能听说过"WebSokcet"这个词&#xff0c;感觉它好像很高深&#xff0c;但其实它是一个超级酷的小工具&#xff0c;让我们在Web应用里实现实时通信。想象一下&#xff0c;你可以像聊天一样&#xff0c;在浏览器和服务器之间来回“畅聊“&#xff0c;没有延迟…

芋道前端Vue项目中的配置文件

1.Vite配置相关文件 vite.config.ts build\vite\optimize.ts build\vite\index.ts package.json package-lock.json pnpm-lock.yaml types文件 types\router.d.ts types\global.d.ts types\env.d.ts types\custom-types.d.ts types\components.d.ts 环境配置 .env.test .e…

【大数据学习 | kafka】kafka的数据存储结构

以上是kafka的数据的存储方式。 这些数据可以在服务器集群上对应的文件夹中查看到。 [hexuanhadoop106 __consumer_offsets-0]$ ll 总用量 8 -rw-rw-r--. 1 hexuan hexuan 10485760 10月 28 22:21 00000000000000000000.index -rw-rw-r--. 1 hexuan hexuan 0 10月 28 …

做一个干电池的电量检测器03:数值拟合与电路仿真

首先在表格中进行详细的计算&#xff0c;整理出所需的数据。接着&#xff0c;我们运用MATLAB的强大功能对这些数据进行插值处理&#xff0c;生成了一个离散的数值数组。这个数组的每个数值都精确地对应着模数转换器&#xff08;ADC&#xff09;采样到的信号。通过这些数值&…

1、Java概述、HelloWorld案例

文章目录 今日内容介绍1.1 Java语言发展史和平台概述1.1.1 Java语言发展史1.1.2 Java语言版本1.1.3 Java平台概述1.2 JVM, JRE, JDK概述1.2.1 什么是跨平台?1.2.2 JVM, JRE, JDK说明1.3 常用DOS命令1.3.1 打开控制台1.3.2 常用命令1.4 下载安装JDK1.5 HelloWorld案例1.5.1 执行…

MFC工控项目实例二十八模拟量信号每秒采集100次

用两个多媒体定时器&#xff0c;一个定时0.1秒计时&#xff0c;另一个定时0.01秒用来对模拟量信号采集每秒100次。 1、在SEAL_PRESSUREDlg.h中添加代码 class CSEAL_PRESSUREDlg : public CDialo { public:CSEAL_PRESSUREDlg(CWnd* pParent NULL); // standard constructor&a…

【Mac】Screen Recorder by Omi Mac:Omi录屏专家

大家好&#xff0c;今天给大家介绍的这款软件叫Screen Recorder by Omi Mac&#xff1a;Omi录屏专家。 软件介绍 OmniRecorder for Mac 是一款用于录制屏幕的应用程序&#xff0c;专为 macOS 设计。它允许用户录制整个屏幕或特定区域&#xff0c;支持音频录制和实时编辑。这个…

多波束T50P和SES2000 Medium100安装记录(2024年10月)

SES2000 Medium100买了一直没有机会用&#xff0c;本次外业刚好需要。SES2000最大穿透70m。 Medium100安装与SES2000 Standard基本相同。除了钢管和法兰不同以外&#xff0c;它们安装支架都可以通用。有条件的话&#xff0c;用焊接方式将其固定在船侧舷&#xff0c;前方加一道拉…

Nginx安装配置详解

Nginx Nginx官网 Tengine翻译的Nginx中文文档 轻量级的Web服务器&#xff0c;主要有反向代理、负载均衡的功能。 能够支撑5万的并发量&#xff0c;运行时内存和CPU占用低&#xff0c;配置简单&#xff0c;运行稳定。 写在前 uWSGI与Nginx的关系 1. 安装 Windows 官网 Stabl…

保研考研机试攻略:python笔记(2)

&#x1f428;&#x1f428;&#x1f428;宝子们好呀&#xff0c;今天我们继续来学习N诺提供的python笔记&#xff0c;fighting&#xff01;( •̀ ω •́ )✧ 对这个系列感兴趣的宝子欢迎关注保研考研机试攻略专栏哦 ~ 目录 &#x1f428;&#x1f428;&#x1f428;4进制转…

qt QSplitter详解

1、概述 QSplitter是Qt框架中的一个布局管理器类&#xff0c;它允许用户在应用程序窗口中创建可拖动的分隔器&#xff0c;以便动态地调整多个子窗口或控件的大小。QSplitter非常适合用于分割、重新排列和管理用户界面中的多个区域&#xff0c;提供了一种直观且灵活的方式来控制…

Spring Boot观察者模式实战

观察者模式简介 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了对象间的一种一对多的依赖关系&#xff0c;当一个对象状态发生改变时&#xff0c;所有依赖于它的对象都会得到通知并自动更新。这种模式也被称为发布-订阅模式、模型…

Java中消息队列——ActiveMQ、RabbitMQ、RocketMQ、Kafka

1.什么是消息中间件 消息中间件是一种专门的工具&#xff0c;帮助不同的应用程序通过发送和接收消息来进行交流。想象一下&#xff0c;一个公司里有多个部门&#xff08;如销售、财务和物流&#xff09;&#xff0c;它们需要共享信息。消息中间件就像一个信使&#xff0c;负责将…

mysql left join group_concat 主表丢失数据

问题出现的场景&#xff1a; 有一个主表 a&#xff0c;一个子表 b a表有两条数据&#xff0c;a表第一条数据在b表中有一条子数据&#xff0c;a表第二条数据在b表中有两条子数据。 现在想要查询出来a表的所有数据和a表的子表b的id&#xff0c;b的id 使用GROUP_CONCAT拼接 有…

深度学习在复杂系统中的应用

引言 复杂系统由多个相互作用的组成部分构成&#xff0c;这些部分之间的关系往往是非线性的&#xff0c;整体行为难以通过简单的线性组合来预测。这类系统广泛存在于生态学、气象学、经济学和社会科学等多个领域&#xff0c;具有动态演变、自组织、涌现现象以及多尺度与异质性…

Python爬虫的京东大冒险:如何高效获取商品详情的秘籍

在这个由代码编织的电商世界里&#xff0c;京东商品详情就像是被锁在高塔中的公主&#xff0c;等待着勇敢的Python爬虫骑士去解救。今天&#xff0c;我们要讲述的是如何成为一名Python爬虫骑士&#xff0c;携带你的代码长矛&#xff0c;穿梭在API的数据森林中&#xff0c;高效获…

【RESTful】RESTful API:最佳实践指南

目录 引言一、URL 设计1.1 动词 宾语1.2 动词的覆盖1.3 宾语必须是名词1.4 复数 URL1.5 避免多级 URL 二、状态码2.1 状态码必须精确2.2 2xx 状态码2.3 3xx 状态码2.4 4xx 状态码2.5 5xx 状态码 三、其他最佳实践3.1 版本管理3.2 使用合适的媒体类型3.3 详细的错误响应3.4 安全…

一些关于云电脑与虚拟化东西

前言 好久没有更新了&#xff0c;在进行自我校准。 云计算是什么&#xff1f; 云计算是一种模型&#xff0c;它使得用户能够随时随地、方便地、按需访问共享的可配置计算资源池&#xff08;例如&#xff0c;网络、服务器、存储、应用程序和服务&#xff09;&#xff0c;这些资…