C++ 类对象和 指针的区别

来源:互联网 发布:秒杀淘宝手机版 编辑:程序博客网 时间:2024/06/06 12:21
  1. class Test{  
  2. public:  
  3.     int a;  
  4.     Test(){  
  5.         a = 1;  
  6.     }  
  7. };  
  8.   
  9. int main()  
  10. {  
  11.     Test* t1 = new Test();  
  12.     t1->a = 10;  
  13.       
  14.     Test* t2 = new Test();  
  15.     t2->a = 5;  
  16.       
  17.     cout << "&t1:" << t1 << " a = " << t1->a << endl;  
  18.     cout << "&t2:" << t2 <<  " a = " << t2->a <<endl;  
  19.       
  20.     cout << "------------------------------" << endl;  
  21.     t2 = t1;  
  22.     cout << "&t1:" << t1 << " a = " << t1->a << endl;  
  23.     cout << "&t2:" << t2 <<  " a = " << t2->a <<endl;  
  24.       
  25.     cout << "------------------------------" << endl;  
  26.       
  27.     t1->a = 111;  
  28.     t2->a = 222;  
  29.     cout << "&t1:" << t1 << " a = " << t1->a << endl;  
  30.     cout << "&t2:" << t2 <<  " a = " << t2->a <<endl;  
  31.       
  32.     return 0;  
  33. }  


对象的情况:

[cpp] view plaincopy
  1. class Test{  
  2. public:  
  3.     int a;  
  4.     Test(){  
  5.         a = 1;  
  6.     }  
  7. };  
  8. int main()  
  9. {  
  10.     Test t1;  
  11.     t1.a = 10;  
  12.       
  13.     Test t2;  
  14.     t2.a = 5;  
  15.       
  16.     cout << "&t1:" << &t1 << " a = " << t1.a << endl;  
  17.     cout << "&t2:" << &t2 <<  " a = " << t2.a <<endl;  
  18.       
  19.     cout << "------------------------------" << endl;  
  20.     t2 = t1;  
  21.     cout << "&t1:" << &t1 << " a = " << t1.a << endl;  
  22.     cout << "&t2:" << &t2 <<  " a = " << t2.a <<endl;  
  23.       
  24.     cout << "------------------------------" << endl;  
  25.       
  26.     t1.a = 111;  
  27.     t2.a = 222;  
  28.     cout << "&t1:" << &t1 << " a = " << t1.a << endl;  
  29.     cout << "&t2:" << &t2 <<  " a = " << t2.a <<endl;  
  30.       
  31.     return 0;  
  32. }  


记住:在默认情况下,将一个对象赋给同类型的另外一个对象时,C++将源对象的每个数据成员复制到目标对象中相应的数据成员中

0 0
原创粉丝点击