对象指针的使用方法
程序代码:
//对象指针相关概念 /*对象指针:在建立对象时,编译系统会为每一个对象分配一定的存储空间,以存放其成员。对象空间的起始地址就是对象的指针。 可以定义一个指针变量,用来存放对象的指针。定义指向类对象的指针变量的一般形式为:类名 * 对象指针名; 对象成员指针:对象有地址,存放对象初始地址的指针变量就是指向对象的指针变量。对象中的成员也有地址,存放对象成员地址的 指针变量就是指向对象成员的指针变量。 指向对象数据成员的指针:定义指向对象数据成员的指针变量的一般形式为:数据类型名 * 指针变量名; 指向对象成员函数的指针:定义指向公用成员函数的指针变量的一般形式为:数据类型名 (类名:: * 指针变量名)(参数表列); 使指针变量指向一个公用成员函数的一般形式为:指针变量名 = & 类名::成员函数名; */ //有关对象指针的使用方法 #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; }