类的对象指针和二级指针
1 #include <iostream> 2 3 class myclass 4 { 5 public: 6 int x; 7 int y; 8 public: 9 myclass(int, int);//构造函数 10 void printxy(); 11 }; 12 13 myclass::myclass(int a, int b) :x(a), y(b)//构造函数 14 { 15 16 } 17 18 void myclass::printxy() 19 { 20 std::cout << x << " " << y << std::endl; 21 } 22 23 void main() 24 { 25 myclass *p(new myclass(10, 9));//一级指针 26 27 p->printxy(); 28 29 myclass class1(20, 1); 30 31 myclass **pp = &p;//二级指针 32 33 (*pp)->printxy();//一级指针 34 (**pp).printxy();//0级指针 35 36 system("pause"); 37 }
通过函数改变一个指针的指向,则函数的参数需要二级指针,或者引用这个指针
1 #include <iostream> 2 3 class myclass 4 { 5 public: 6 int x; 7 int y; 8 public: 9 myclass(int, int);//构造函数 10 void printxy(); 11 }; 12 13 myclass::myclass(int a, int b) :x(a), y(b)//构造函数 14 { 15 16 } 17 18 void myclass::printxy() 19 { 20 std::cout << x << " " << y << std::endl; 21 } 22 23 myclass class1(10, 11); 24 myclass class2(11, 12); 25 26 void change1(myclass **pp)//二级指针 27 { 28 *pp = &class2; 29 } 30 31 void change2(myclass * & p)//引用一个指针 32 { 33 p = &class1; 34 } 35 36 void main() 37 { 38 myclass *p = &class1; 39 40 p->printxy(); 41 42 change1(&p); 43 44 p->printxy(); 45 46 change2(p); 47 48 p->printxy(); 49 50 system("pause"); 51 }