C++:对象指针

简介:
对象指针
概念:每一个对象在初始化后都会在内存中占有一定的空间。因此,既可以通过对象名访问,
也可以通过一个对象地址来访问一个对象。对象指针就是用于存放对象地址的变量。

声明对象指针的一般语法格式为:类名*对象指针名

指针访问模式:1、用指针访问单个对象成员
                            2、用对象指针访问对象数组

//@用指针访问单个对象成员:一般情况下,用点运算符"."来访问对象成员,当用指向对象
//的指针来访问对象成员时,就要用"->"操作符。

 

复制代码
                                   
//例3.17 对象指针的使用
#include<iostream>
using namespace std;
class exe{
 public:
       void set_a(int a) //定义成员函数set_a,给数据成员赋值
       {
         x = a;
       } 
       void show_a()   //定义成员函数show_a,输出数据成员的值
       {
        cout<<x<<endl;
       } 
       private:
         int x;
}; 
int main()
{
exe ob;  //定义类exe的对象ob 
exe *p;  //定义类exe的对象指针变量p
ob.set_a(2); //调用成员函数set_a,给数据成员赋值 
ob.show_a(); //调用成员函数show_a,显示数据成员的值
p = &ob; //将对象ob的地址赋给指针变量p 
(*p).show_a(); //调用p所指向的对象的成员函数show_a,也即ob.show_a() 
p->show_a();   //调用p所指向的对象的成员函数show_a,也即ob.show_a()
return 0;
}
//以上情况下:ob.show_a() = (*p).show_a() = p->show_a() ,运行结果相同 


//@用对象指针访问对象数组:

       exe  *p;    //定义指向类exe的对象指针变量p 
       exe  ob[2]; // 定义类exe的对象数组ob[2]
       若只有数组名,没有下标,这时该数组名代表第一个元素的地址,所以执行语句:
       p = ob;  //就是把数组中的第一个元素的地址(即数组的地址)赋给对象指针变量p
       
将3.17的主函数改成为:
         int main()
         {
           exe ob[2];
           exe *p;
           ob[0].set_a(10);
           ob[1].set_a(20);
           p = ob;
           p->show_a();
           p++;
           return 0;
           }
           
       程序运行结果:  10
                     20        
复制代码
 
 
 
本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4911850.html,如需转载请自行联系原作者
相关文章
|
19天前
|
编译器 C++
C++之类与对象(完结撒花篇)(上)
C++之类与对象(完结撒花篇)(上)
31 0
|
7天前
|
存储 安全 编译器
在 C++中,引用和指针的区别
在C++中,引用和指针都是用于间接访问对象的工具,但它们有显著区别。引用是对象的别名,必须在定义时初始化且不可重新绑定;指针是一个变量,可以指向不同对象,也可为空。引用更安全,指针更灵活。
|
14天前
|
存储 编译器 对象存储
【C++打怪之路Lv5】-- 类和对象(下)
【C++打怪之路Lv5】-- 类和对象(下)
19 4
|
14天前
|
编译器 C语言 C++
【C++打怪之路Lv4】-- 类和对象(中)
【C++打怪之路Lv4】-- 类和对象(中)
16 4
|
24天前
|
存储 编译器 C++
【C++类和对象(下)】——我与C++的不解之缘(五)
【C++类和对象(下)】——我与C++的不解之缘(五)
|
24天前
|
编译器 C++
【C++类和对象(中)】—— 我与C++的不解之缘(四)
【C++类和对象(中)】—— 我与C++的不解之缘(四)
|
25天前
|
存储 C++
c++的指针完整教程
本文提供了一个全面的C++指针教程,包括指针的声明与初始化、访问指针指向的值、指针运算、指针与函数的关系、动态内存分配,以及不同类型指针(如一级指针、二级指针、整型指针、字符指针、数组指针、函数指针、成员指针、void指针)的介绍,还提到了不同位数机器上指针大小的差异。
24 1
|
26天前
|
C++
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
51 1
|
15天前
|
存储 编译器 C语言
【C++打怪之路Lv3】-- 类和对象(上)
【C++打怪之路Lv3】-- 类和对象(上)
14 0
|
19天前
|
编译器 C++ 数据库管理
C++之类与对象(完结撒花篇)(下)
C++之类与对象(完结撒花篇)(下)
28 0