1. 程式人生 > >指向物件的指標

指向物件的指標

用物件陣列的方法對資料成員進行初始化。 

#include<iostream>
using namespace std;
class box
{
	public:
		box(int h=10,int w=12,int len=15):height(h),width(h),length(len){}
		int volume();
	private:
			int height;
			int width;
			int length;
 } ;
 int box::volume()
 {
 	return (height*width*length);
 }
 int main()
 {
 	box a[3]=
 	{
 		box(10,12,15),
 		box(15,18,20),
 		box(16,20,26)
	 };
	 cout<<"the volume of a[0] is"<<a[0].volume()<<endl;
	 cout<<"the volume of a[1] is"<<a[1].volume()<<endl;
	 cout<<"the volume of a[2] is"<<a[2].volume()<<endl;
 }
 

指向物件成員的指標

複習:定義指標的兩種方法

方法 1:定義時直接進行初始化賦值。

  1. unsigned char a;
  2. unsigned char *p = &a;

方法 2:定義後再進行賦值。

  1. unsigned char a;
  2. unsigned char *p;
  3. p = &a;
#include<iostream>
using namespace std;
class 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,12,56);
	int *p1=&t1.hour;//指向資料成員t1.hour 
	cout<<*p1<<endl;
	t1.get_time();
	time *p2=&t1;//使指標指向物件t1 
	p2->get_time();//呼叫物件t1的輸出函式 
	void(time::*p3)();//定義指向time公用成員函式的指標變數p3 
	p3=&time::get_time;//使p3指向time類公用成員函式 
	(t1.*p3)();//呼叫p3所指的成員函式 
}