zoukankan      html  css  js  c++  java
  • 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        
  • 相关阅读:
    [转载]应用系统架构设计
    带隐藏功能的菜单导航
    3 CSS 高级语法
    FarPoint Spread 基础知识
    端口映射工具
    2008年上半年信息系统项目管理师考试试题分析
    DateTime.Now
    华为战略部门研究山寨机决定出售手机部门
    网管必须掌握的八个DOS命令(转)
    智能机常见问题(新手必读)
  • 原文地址:https://www.cnblogs.com/XYQ-208910/p/4911850.html
Copyright © 2011-2022 走看看