| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 537 人关注过本帖
标题:对象指针的使用方法
取消只看楼主 加入收藏
hmsabc
Rank: 2
来 自:贵州省兴义市
等 级:论坛游民
帖 子:97
专家分:19
注 册:2010-8-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
对象指针的使用方法
程序代码:
//对象指针相关概念
/*对象指针:在建立对象时,编译系统会为每一个对象分配一定的存储空间,以存放其成员。对象空间的起始地址就是对象的指针。
可以定义一个指针变量,用来存放对象的指针。定义指向类对象的指针变量的一般形式为:类名 * 对象指针名;
对象成员指针:对象有地址,存放对象初始地址的指针变量就是指向对象的指针变量。对象中的成员也有地址,存放对象成员地址的
指针变量就是指向对象成员的指针变量。
指向对象数据成员的指针:定义指向对象数据成员的指针变量的一般形式为:数据类型名 * 指针变量名;
指向对象成员函数的指针:定义指向公用成员函数的指针变量的一般形式为:数据类型名 (类名:: * 指针变量名)(参数表列);
使指针变量指向一个公用成员函数的一般形式为:指针变量名 = & 类名::成员函数名;
*/
//有关对象指针的使用方法

#include <iostream>
using namespace std;
class Time                        //定义类 Time
{
public:
    Time(int,int,int);           //声明构造函数
    int hour;
    int minute;
    int sec;
    void get_time( );          //声明公有成员函数
};
Time::Time( int h, int m, int s)                //类外定义构造函数
{
    hour = h;
    minute = m;
    sec =s;
}
void Time::get_time( )                       //定义公有成员函数
{ cout << hour << ":" << minute << ":" << sec << endl;}
int main( )
{
    Time t1( 10,13,56);                     //定义 Time 类对象 t1
    int * p1 = &t1.hour;                    //定义指向对象数据成员的指针变量,并使其指向 t1.hour
    cout << * p1 << endl;                   //输出 p1 所指的数据成员 t1.hour
    t1.get_time( );                         //调用对象 t1 的成员函数 get_time
    Time * p2 = &t1;                        //定义指向 Time 类对象的指针变量 p2,并使其指向对象 t1
    p2->get_time ( );                       //调用 p2 所指向对象(即 t1)的 get_time 函数
    void( Time::* p3)( );                   //定义指向 Time 类公用成员函数的指针变量 p3
    p3 = &Time::get_time;                   //使 p3 指向 Time 类公用成员函数 get_time
    ( t1.* p3)( );                          //调用对象 t1 中 p3 所指的成员函数(即 t1.get_time( ))
    system("pause");
    return 0;
}
搜索更多相关主题的帖子: 指针 对象 
2010-08-07 08:57
hmsabc
Rank: 2
来 自:贵州省兴义市
等 级:论坛游民
帖 子:97
专家分:19
注 册:2010-8-2
收藏
得分:0 
回复 2楼 pangding
谢谢,我正在加油呢!
2010-08-08 12:05
快速回复:对象指针的使用方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021580 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved