1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > c++ 对象指针参数和对象引用参数02

c++ 对象指针参数和对象引用参数02

时间:2023-09-08 07:13:26

相关推荐

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);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。