C++对象指针

来源:互联网 发布:端口被系统占用 编辑:程序博客网 时间:2024/06/07 02:53

        最近学到c++的指向对象的指针方面的内容,感觉跟以前学的c指针有挺多不同,所以在这里写个总结,方便以后查阅。

        先在这里列出以前所学的指针类型:

         int    *p;                          //定义指向整型数九的指针变量。

         int    *p[];                        //定义指向数组的指针。

         int    (*p)[n];                   //指向含有n个元素的一维数组。

         int    *f();                        //定义一个返回指向整型的数据的指针。

         int   (*p)();                     //定义指向返回整型数据函数的指针。

         int   **p;                        //定义一个指向指向整型数据的指针的指针。

         变量的引用可以用相应的指针或引用。都可以起到即使是将变量作为形参也可以修改变量的值。

         形如:swap(int &,int &)

                     也可以进行对象的引用

                     Time  t1;

                Time  t2=&t1;          

    好了,现在列举下关于指向对象和指向对象成员的指针了。

    ①指向对象的指针。

           定义的一般形式:类名    *指针名;

                                     Time    *pt;

           赋值的形式:pt = &t1;

    ②指向对象成员数据的指针。

           定义的一般形式:数据类型   *指针名;

                                     int       *pt;

           赋值的形式:     pt=&t1.time;

           调用的形式:      cin>>*pt;               //指向对象成员数据的指针的定义和调用与一般变量类似。

    ③指向对象成员函数的指针。

           定义的一般形式:数据类型名 (类名::*指针变量名)(参数列表);     //参数列表可不填写。

                                     void     (Time::*pt)();

            赋值的形式:     指针变量名=&类名::成员函数名;

                                     pt=&Time::get_time;

                                    也可以初始化时赋值:

                                                      void  (TIme::*pt)()=&Time::get_time;

           调用的一般形式:   t1.(*pt)();           //因为对象的成员函数不存储与对象的空间(为了所有的同类对象共用函数)。所以每次用指针前面都要加上对象名

           

        

0 0
原创粉丝点击