当前位置: 首页 > news >正文

c++中操作符->与 . 的使用与区别

在C++中,->. 是两个不同的成员访问操作符,用于访问类、结构体或联合体的成员。

“->” 操作符:
  • 用于通过指针访问指针所指向对象的成员。
  • 当有一个指向对象的指针时,可以使用 -> 操作符来访问该指针所指向对象的成员。
  • 语法:指针->成员名
  • 示例:
Person* ptr = new Person();
ptr->name = "Alice";
ptr->age = 25;
“.” 操作符:
  • 用于直接访问对象实例的成员。
  • 当你有一个对象的实例时,可以使用 . 操作符来直接访问该实例的成员。
  • 语法:实例.成员名
  • 示例:
Person person;
person.name = "Alice";
person.age = 25;
一个简单的代码案例来说明 -> 和 . 的使用和区别:
#include <iostream>
using namespace std;class Person {
public:string name;int age;
};int main() {Person person1;             // 创建一个 Person 类的对象 person1person1.name = "Alice";     // 直接访问对象实例的成员(使用 . 操作符)person1.age = 25;Person* person2 = new Person();  // 创建一个 Person 类的对象person2,并用指针 person2 指向它person2->name = "Bob";           // 通过指针访问对象的成员(使用 -> 操作符)person2->age = 30;cout << "Person 1: " << person1.name << ", " << person1.age << endl;cout << "Person 2: " << person2->name << ", " << person2->age << endl;delete person2;    // 释放通过 new 运算符分配的内存return 0;
}
  • 在上述示例中,我定义了一个 Person 类,其中包含两个成员变量 name 和 age。
  • 在 main 函数中,创建了两个 Person 对象:person1 是一个对象实例,通过 . 操作符直接访问它的成员变量;person2 是一个指向 Person 对象的指针,通过 -> 操作符访问它所指向对象的成员变量。
  • 输出结果为:
Person 1: Alice, 25
Person 2: Bob, 30

总结:

-> 用于访问指针所指向对象的成员。

. 用于直接访问对象实例的成员。

http://www.lryc.cn/news/184971.html

相关文章:

  • golang 编译器 汉化
  • 压缩包系列
  • 互联网图片安全风控实战训练营开营!
  • 炫酷转换:Java实现Excel转换为图片的方法
  • vue elementui <el-date-picker>日期选择框限制只能选择90天内的日期(包括今天)
  • YOLOv5全新Neck改进:BiSPAN 结构独一无二,为目标检测打造全新融合网络,增强定位信号,对于小目标检测的定位具有重要意义
  • flutter开发实战-video_player插件播放抖音直播实现(仅限Android端)
  • React组件
  • [动手学深度学习]注意力机制Transformer学习笔记
  • hadoop集群安装并配置
  • Quarto 入门教程 (3):代码框、图形、数据框设置
  • 虚拟机Ubuntu18.04安装对应ROS版本详细教程!(含错误提示解决)
  • #力扣:14. 最长公共前缀@FDDLC
  • Android 13.0 解锁状态下禁止下拉状态栏功能实现
  • chromium线程模型(1)-普通线程实现(ui和io线程)
  • uniapp uni.showToast 一闪而过的问题
  • 代理模式介绍及具体实现(设计模式 三)
  • 【18】c++设计模式——>适配器模式
  • mariadb 错误日志中报错:Incorrect definition of table mysql.column_stats:
  • 【SpringBoot】多环境配置和启动
  • 跨qml通信
  • 力扣-404.左叶子之和
  • 如何搭建一个 websocket
  • pip常用命令
  • [QT编程系列-43]: Windows + QT软件内存泄露的检测方法
  • 【Java-LangChain:使用 ChatGPT API 搭建系统-5】处理输入-思维链推理
  • java Spring Boot RequestHeader设置请求头,当请求头中没有Authorization 直接400问题解决
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk 二次报错注入
  • 双机并联逆变器自适应虚拟阻抗下垂控制(Droop)策略Simulink仿真模型
  • 8月份,誉天79名学员通过HCIE认证!