c++ 指针

对象指针

  指针可以用来指向变量,也可以用来指向对象。

  1.指向对象的指针

  在建立对象时,系统会为每一个对象分配一定的存储空间,存放其中的数据成员。对象空间的起始地址就是对象的指针。

  形式:

  类名 * 对象名

  Time * pt;    //定义pt为指向Time类对象的指针变量

  Time  t1;

  pt=&t1;

  *pt        pt所指向的对象,即t1;

  pt->hour  pt所指向的对象中的hour成员,t1.hour

  (*pt).hour

  (*pt).get_time()

  2.指向对象成员的指针

  例子:

  int * p1;

  p1=&t1.hour;将对象t1的数据成员hour的地址赋给p1,p1指向t1.hour.

  形式:

  数据类型名  * 指针变量名

  3.指向对象成员函数的指针

  定义指向对象成员函数的指针变量的方法和定义指向普通函数的指针变量方法有所不同。

  普通函数

  数据类型名 (*指针变量名) (参数表列);

  Void (* p) ( );       //p是指向void型函数的指针变量.

  p=fun;            //将fun函数的入口地址赋给指针变量p,p就指向了函数fun.

  (* p)( );           //将用fun函数.

  指向对象成员函数的指针

  形式: 数据类型名 (类名::* 指针变量名) (参数表列);

  然后把公用成员函数的地址赋给指针变量.

  指针变量名=& 类名::成员函数名;

  例子:

  Void (Time ::* p2) ( );

  p2=&Time::get_time;

  有关指针对象的使用方法

  # include<iostream>

  using namespace std;

  class Time

  {

  public:

  Time(int h,int m,int s):hour(h),minute(m),sec(s){}

  int hour;

  int minute;

  int sec;

  void display();

  };

  void Time::display()

  {

  cout <<hour<<":"<<minute<<":"<<sec<<endl;

  }

  int main()

  {

  Time t1(10,13,56);

  int * p1=&t1.hour;

  cout <<*p1<<endl;

  t1.display();

  Time * p2=&t1;

  p2->display();

  void (Time::*p3) ();

  p3=&Time::display;

  (t1.*p3) ( );

  }

  对象数组

  在日常生活中,有许多实体的属性是共同的,只是属性的具体内容不同.例如一个班有50个学生,每个学生的属性包括姓名,性别,年龄,成绩等.如果为每一个学生建立一个对象,需要取50个对象名.用程序处理不方便.这时可以定义一个”学生类”的对象数组,每一个数组元素是一个”学生类”对象.

  例如:

  Student stud[50];

  对象数组初始化:

  Student stud[50]={

  Student(1001,18,87),

  Student(1001,18,87),

  Student(1001,18,87),

  Student(1001,18,87),

  Student(1001,18,87),

  …………………….

  };

本篇文章来源于《点睛考试网》[www.kswchina.com] ;原文链接地址:http://it.kswchina.com/ncre/ej/cc/fd/637797.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值