指向物件的指標
阿新 • • 發佈:2018-12-19
用物件陣列的方法對資料成員進行初始化。
#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:定義時直接進行初始化賦值。
- unsigned char a;
- unsigned char *p = &a;
方法 2:定義後再進行賦值。
- unsigned char a;
- unsigned char *p;
- 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所指的成員函式 }