c++ 对象指针参数和对象引用参数02
生活随笔
收集整理的這篇文章主要介紹了
c++ 对象指针参数和对象引用参数02
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對象指針作為函數參數和對象引用作為函數參數都比對象作為函數參數要用的更為普遍
傳對象指針和傳對象引用作為實參,那么實參在函數里發生了變話,那么相應的對象本身也會發生變化,二傳遞對象本身作為實參的話,實參發生變化,對象本身不會發生變化,因為對象指針和對象引用傳給函數的實際上是所指對象的地址,而對象本身作為實參傳給函數的話,則是傳遞對象本身的副本,和原對象沒有任何關系。實例代碼如下:
class test{ public:test(int a,int b):x(a),y(b){} public:int x;int y; }; //指針來定義形參 void alterTest0(test *p) {p->x=100;p->y=100; }//引用來定義形參 void alterTest1(test &p) {p.x=200;p.y=200; }
//對象本身來定義形參 void alterTest2(test p) {p.x=300;p.y=300; }int main(int argc, char* argv[]) { test t(10,10);cout<<"test t:"<<t.x<<" "<<t.y<<endl;alterTest2(t);cout<<"test t 對象本身做實參:"<<t.x<<" "<<t.y<<endl;alterTest0(&t);cout<<"test t 對象指針做實參:"<<t.x<<" "<<t.y<<endl;alterTest1(t);cout<<"test t 對象引用做實參:"<<t.x<<" "<<t.y<<endl;return 0;}
運行結果如上圖,對象本身作為實參不會改變原對象的值。
注意:注意引用傳參 在調用函數并且給實參的時候,只需要給對象就行,定義了 ,就會自動取其引用。alterTest2(t);
轉載于:https://www.cnblogs.com/fengting/p/4439370.html
總結
以上是生活随笔為你收集整理的c++ 对象指针参数和对象引用参数02的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TComboBox的使用
- 下一篇: Hibernate n+1问题