zoukankan      html  css  js  c++  java
  • c++中经常需要访问对象中的成员的三种方式

    可以有3种方法:
    通过对象名和成员运算符访问对象中的成员;
    通过指向对象的指针访问对象中的成员;
    通过对象的引用变量访问对象中的成员。

    一、通过对象名和成员运算符访问对象中的成员

    例如在程序中可以写出以下语句:
       stud1.num=1001;//假设num已定义为公用的整型数据成员
    表示将整数1001赋给对象stud1中的数据成员num。其中“.”是成员运算符,用来对成员进行限定,指明所访问的是哪一个对象中的成员。 注意不能只写成员名而忽略对象名。
    访问对象中成员的一般形式为
        对象名.成员名

    不仅可以在类外引用对象的公用数据成员,而且还可以调用对象的公用成员函数,但同样必须指出对象名,如
       stud1.display( );//正确,调用对象stud1的公用成员函数
       display( );//错误,没有指明是哪一个对象的display函数
    由于没有指明对象名,编译时把display作为普通函数处理。 应该注意所访问的成员是公用的(public )还是私有的(private )。只能访问public成员,而不能访问private成员, 如果已定义num为私有数据成员,下面的语句是错误的:
       stud1.num=10101;//num是私有数据成员,不能被外界引用
    在类外只能调用公用的成员函数。在一个类中应当至少有一个公用的成员函数,作为对外的接口,否则就无法对对象进行任何操作。

    二、通过指向对象的指针访问对象中的成员

    我们已经介绍了指向结构体变量的指针,可以通过指针引用结构体中的成员。用指针访问对象中的成员的方法与此类似。如果有以下程序段:
    class Time
    {
       public : //数据成员是公用的
       int hour;
       int minute;
    };Time t,*p;//定义对象t和指针变量p
       p=&t;//使p指向对象t
       cout<<p->hour;//输出p指向的对象中的成员hour
    在p指向t的前提下,p->hour,(*p).hour和t.hour三者等价。

    三、通过对象的引用变量来访问对象中的成员

    如果为一个对象定义了一个引用变量,它们是共占同一段存储单元的,实际上它们是同一个对象,只是用不同的名字表示而已。因此完全可以通过引用变量来访问对象中的成员。
    如果已声明了Time类,并有以下定义语句:
       Time t1; //定义对象t1
       Time &t2=t1;//定义Time类引用变量t2,并使之初始化为t1
       cout<<t2.hour;//输出对象t1中的成员hour
    由于t2与t1共占同一段存储单元(即t2是t1的别名),因此t2.hour就是t1.hour。

  • 相关阅读:
    周杰伦理片,吴奇隆胸店,邓紫棋牌室,黄家驹留所,金秀贤鸭蛋,郭富城管员,苍井空调店,齐达内衣店,乔布斯袜店……能接下去么?
    华彬庄园_百度百科
    9月19号-9月21号丰宁坝上草原行
    寻找INTERIGHT衬衫男神! [复制链接]
    新公司,新挑战
    docker~通过vs2017的Dockerfile来生成镜像
    EF架构~codeFirst从初始化到数据库迁移
    干货~powershell与bash和docker在项目中怎么用
    docker~Dockerfile优化程序的部署
    代码混淆 GSON完满解决
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3281438.html
Copyright © 2011-2022 走看看