C++ 面向对象编程提高代码的效率性和健壮性
来源:互联网 发布:淘宝新店怎么做推广 编辑:程序博客网 时间:2024/06/08 10:21
一、通过引用来传递和返回对象
和其他变量一样,对象既可以通过传值方式,也可以通过引用方式来传递和返回。一般来说,除非迫不得已,都采用引用方式。这是因为通过传值方式来传递和返回对象需要面临对象间的拷贝操作,是数据变大,从而降低效率,浪费内存。(传递一个指向对象的指针与引用方式效果相同)
class Test{public: void set(int n) { nNum = n; }; int get() const { return nNum; };private: int nNum;};void f(Test &test) { test.set(999); CString s; s.Format(_T("%d"), test.get()); MessageBox(s);};Test& g() { // 函数返回的是静态对象的引用,不是局部对象的引用 // 否则g返回给调用者的引用将参考到一个已经不存在的对象 static Test test; test.set(-999); return test;};// 用户调用Test test1, test2;f(test1);test2 = g();CString s;s.Format(_T("%d"), test2.get());MessageBox(s);
二、const类型参数的对象引用
通常对象作为函数参数通过引用传递时,而该函数又无需改变对象数据成员的值而改变对象的状态,此时可将参数表为const,防止对参数的误写。
class Test{public: // n只是给成员变量赋值,并不会改变自身的值 void set(const int& n) { nNum = n; };private: int nNum;};
三、const成员函数
如果成员函数无需直接或间接改变函数所属函数对象的任何数据成员,那么最好将该函数标记为const。const成员函数只能调用const成员函数,因为非const成员函数可能改变对象的数据成员,而const成员函数不能改变对象状态
class Test{public: void set(int n) { nNum = n; }; // 因为get函数不改变类数据成员的值,所以可将该函数标位const int get() const { return nNum; };private: int nNum;};
四、重载成员函数,便于不同类型的参数输入
阅读全文
0 0
- C++ 面向对象编程提高代码的效率性和健壮性
- C、C++中使用const提高程序的健壮性和效率
- 如何提高代码的健壮性
- 提高编程效率和代码规范的一点思考
- 代码高效性和健壮性的权衡
- 代码高效性和健壮性的权衡
- 代码的健壮性和高效性
- 浅谈C代码的健壮性
- 如何提高代码的健壮性需求?
- [C++] 使用const提高函数的健壮性
- C+ + 使用const提高函数的健壮性
- 提高代码健壮性
- 提高代码健壮性具有自然作用和社会作用
- const 关键字提高代码健壮性
- C的面向对象编程
- 【c#】 面向对象的编程
- 使用python3的typing模块提高代码健壮性
- 面向对象的设计法确保软件的健壮性
- android手机中指纹识别应用相关功能的讲解
- squid创建匿名代理 用户密码验证(Ubuntu16.04)
- 贝叶斯与门特卡洛采样python库
- Android Studio-R错误 cannot resolve symbol R
- Python中if __name__ == "__main__": 的作用
- C++ 面向对象编程提高代码的效率性和健壮性
- php_lang_ref:Language Reference >> References Explained >> Spotting References
- 算法系列——Integer Break
- Missing artifact com.sun:tools:jar:1.5.0错误
- Python Gitlab Api 使用
- 关于安装版tomcat和绿色版(解压版)tomcat的区别
- 二叉树的序列化和反序列化及完全二叉树和满二叉树的区别
- 你的电脑也可以定时关机
- 位操作基础和技巧