c++ 中在形参与实参之间的值传递

主要是对比直接传递与引用类型、指针类型之间的区别。

 1 #include <iostream>
 2 using namespace std;
 3 
 4 class MyClass
 5 {
 6 public:
 7     int a;
 8     void method();
 9 };
10 void MyClass::method()
11 {
12     cout<<"the last value of class:a after fun:"<<a<<\n;
13 }
14 
15     void fun1(MyClass);
16     void fun2(MyClass*);
17     void fun3(MyClass&);
18 int main()
19 {
20     MyClass myclass;
21     myclass.a=10;
22     fun1(myclass);
23     cout<<" the initial value of class:a after fun1:  "<<myclass.a<<\n;
24     myclass.a=10;
25     fun2(&myclass);
26     cout<<" the initial value of class:a after fun2:  "<<myclass.a<<\n;
27     myclass.a=10;
28     fun3(myclass);
29     cout<<" the initial value of class:a after fun3:  "<<myclass.a<<\n;
30     system("pause");
31 }
32 void fun1(MyClass mc)
33 {
34     mc.a=40;
35     mc.method();
36 }
37 void fun2(MyClass* mc)
38 {
39     mc->a=60;
40     mc->method();
41 }
42 void fun3(MyClass&mc)
43 {
44     mc.a=80;
45     mc.method();
46 }

参照:http://www.cnblogs.com/wackelbh/archive/2009/12/29/1984064.html

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。