C++ 学习之路(3):向函数传递对象
2016-03-10 22:13
344 查看
// 向函数传递对象 #include <iostream> using namespace std; class aClass { public: aClass(int n) { i = n; } void set(int n) { i = n; } int get() { return i; } private: int i; }; // 对象作为函数的参数(传值) void sqr1(aClass ob) { ob.set(ob.get()*ob.get()); cout<<"Copy of obj has i value of "; cout<<ob.get()<<endl; } // 对象指针作为函数的参数(传址) void sqr2(aClass *ob) { ob->set(ob->get()*ob->get()); cout<<"Copy of obj has i value of "; cout<<ob->get()<<endl; } // 对象的引用作为函数的参数 void sqr3(aClass &ob) { ob.set(ob.get()*ob.get()); cout<<"Copy of obj has i value of "; cout<<ob.get()<<endl; } int main() { aClass obj(10); cout<<"----对象 作函数参数----"<<endl; sqr1(obj); cout<<"But, obj.i is unchanged in main:"; cout<<obj.get()<<endl; cout<<"----对象指针 作函数参数----"<<endl; sqr2(&obj); cout<<"Now, obj.i in main() has been changed. :"; cout<<obj.get()<<endl; cout<<"----对象的引用 作函数参数----"<<endl; // 上面操作已将对象obj的数据成员i改变,此处改回。 obj.set(10); sqr3(obj); cout<<"Now, obj.i in main() has been changed. :"; cout<<obj.get()<<endl; return 0; }
相关文章推荐
- C++ 学习之路(2):对象数组和指针
- C++ 学习之路(1):拷贝构造函数
- C++第一次上机实验报告—01
- 快速排序C++实现
- c++基础知识
- C++ DirectX 游戏开发中级视频教程 06 资源下载链接
- C++第一次上机实验-2
- C++ string类的简单实现
- 动态内存分配(c++)
- 关于string的一些心得体会
- c++容器
- c++如何对结构体作为形参设置默认值
- 面试C++中的常见问题
- c语言枚举enum
- Python Microsoft Visual C++ Compiler Package for Python 2.7
- Problem G: C语言习题 n个数逆序
- C++ Primer 第九章顺序容器
- Problem F: C语言习题 矩阵元素变换
- C++之:友元函数
- C++第一次实验