C++对象指针-指向对象的指针

Posted LC编程开发者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++对象指针-指向对象的指针相关的知识,希望对你有一定的参考价值。

1 对象指针

       学习C语言的时候,我们已经学习了指针的相关知识。例如:

int a;

int* pa = &a;

       此时,我们定义一个int类型的变量a,同时,定义一个int类型的指针变量pa,并把变量a的地址赋给指针变量pa,那么,指针变量pa就指向了变量a。

       同样的道理,C++定义的类,就是一个有效的数据类型,如同int, float, double这样的数据类型。所以,可以定义C++类对象的指针变量,与C语言中定义int, float, struct结构体等类型的指针变量一样。

1.1 指向对象的指针

       在建立对象的时候,编译系统会为每一个对象分配一个存储空间,用来存放对象的成员。可以定义一个指针变量,用来存放对象的地址。如下是一个测试例子:

       程序运行结果如下:

       在这个例子中,定义了一个student类对象,如下:

student stud("wkf","www.mylinux.vip",13926572996);  //定义对象

       然后,定义一个student类型的指针对象,如下:

student* ps;

       此时,ps是一个指针对象,它可以指向一个student类型的对象。所以,可以把stud对象的地址赋给指针对象ps,如下:

ps = &stud;

       最终,指针对象ps指向stud对象。然后,通过指针对象ps调用print()函数,就是调用

stud对象的print()函数。所以,输出的是stud对象的信息。

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

类名 *对象指针名;

可以通过对象指针访问对象和成员的函数,如:

*ps     //使用*号运算符对指针对象ps降级,获取指针对象ps指向的对象。即stud对象;

(*ps).name  //获取ps指向stud对象的name成员,即stud.name成员;

ps->name        //通过指针ps访问所指向的stud对象的name成员,即stud.name成员;

(*ps).print();  //使用*号运算符对指针对象ps降级,获取指针对象ps指向的对象。即stud对象,相应调用stud.print()函数,就是通过stud对象调用。

ps->print();    //通过指针ps访问所指向的stud对象的print()函数,相当于stud.print()调用;

       所以,通过类指针对象访问成员变量和成员函数,访问的方式与C语言的struct结构体一样。

韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

以上是关于C++对象指针-指向对象的指针的主要内容,如果未能解决你的问题,请参考以下文章

如何从 C++ 中的“指向对象的指针”向量访问对象

C++对象指针-指向对象的指针

C++对象指针-指向对象的指针

在 C++ 中使用指针和指向指针的指针读取和存储序列化对象的快速方法

C++指向常对象的指针变量

C++指向常对象的指针变量