11.9 C++对象指针

C++指向对象的指针

C++建立对象时,编译系统会为每一个对象分配一定存储空间,让存放其成员。对象空间的起始地址就是对象的指针,可以定义一个指针变量,用来存放对象的指针。

定义指向类对象的指针变量的一般形式为

复制代码
类名 * 对象指针名;

可以通过对象指针访问对象和对象的成员

C++指向对象成员的指针

在C++中,对象是有地址的,存放对象初始地址的指针变量就是指向对象的指针变量,对象中的成员也有地址,存放对象成员地址的指针变量就是指向对象成员的指针变量。

1、指向对象数据成员的指针

定义指向对象数据成员的指针变量的方法和定义指向普通变量的指针变量方法相同。

数据的指针变量 定义指向对象数据成员的指针变量的一般形式为

复制代码
数据类型名 *指针变量名;

2、指向对象成员函数的指针

C++定义指向对象成员函数的指针变量的方法,与定义指向普通函数的指针变量方法有所不同。

成员函数与普通函数有一个最大的区别:成员函数是类中的一个成员。

定义指向公用成员函数的指针变量的一般形式为

scss 复制代码
数据类型名 (类名∷*指针变量名)(参数表列);

指针变量指向一个公用成员函数的一般形式为

ini 复制代码
指针变量名=&类名∷成员函数名;

案例:C++对象指针的使用

arduino 复制代码
#include <iostream>
using namespace std;
class Time
{
  public:Time(int,int,int);
  int hour,minute,second;
  void getTime(); //声明成员函数
};
Time::Time(int h,int m,int s)
{
  hour=h;
  minute=m;
  second=s;
}
void Time::getTime()//定义成员函数
{
  cout<<hour<<"点"<<minute<<"分"<<second<<"秒"<<endl;
}
int main( )// 程序的主函数
{
  Time time(20,22,45); //定义Time类对象time
  time.getTime(); //调用函数
// 定义指向整型数据的指针变量point,并指向time.hour
  int *point=&time.hour;
  cout<<*point<<endl;
  return 0;
}

编译运行结果:

sql 复制代码
20点22分45秒
20

--------------------------------
Process exited after 0.07195 seconds with return value 0
请按任意键继续. . .

以上,如果你看了觉得对你有所帮助,就给小林点个赞叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~

相关推荐
L_09073 分钟前
【C++】数据结构之哈希表(散列表)
数据结构·c++·散列表
LB211210 分钟前
C++通讯录课设(西安石油大学)
开发语言·c++·算法
王老师青少年编程11 分钟前
2026年全国青少年信息素养大赛初赛真题(算法应用主题赛C++初中组初赛真题1:文末附答案和解析)
c++·真题·全国青少年信息素养大赛·初赛·2026年·算法应用主题赛·初中组
草莓熊Lotso2 小时前
【Linux系统加餐】从原理到封装:基于建造者模式实现System V信号量工业级C++封装
android·linux·运维·服务器·网络·c++·建造者模式
kyle~10 小时前
机器视觉---熔池相机(穿透强光的视觉感知)
c++·数码相机·计算机视觉·机器人·焊接机器人
宏笋10 小时前
C++ Coroutines(协程) 详解
c++
王老师青少年编程10 小时前
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维前缀和】:求区间和
c++·前缀和·csp·高频考点·信奥赛·求和区间和
kyle~11 小时前
机器人时间链路---工程流程示例
c++·3d·机器人·ros2
汉克老师12 小时前
GESP6级C++考试语法知识(十七、数据结构(三、认识队列 Queue))
数据结构·c++·队列·gesp6级·gesp六级·数组模拟队列
j_xxx404_14 小时前
Linux进程信号捕捉与操作系统运行本质深度解析
linux·运维·服务器·开发语言·c++·人工智能·ai