c++11
^Moon^
这个作者很懒,什么都没留下…
展开
-
C++11特性-委派构造函数-的益处
对于复杂的C++类,有很多个构造函数是非常常见的。为了减少重复代码,经常看到在一个构造函数里调用另一个构造函数的情况。 #include <iostream> using namespace std; class Info{ public: Info() { Init(); printInfo();}; Info(int i) { Info(); type = i; printInfo();} Info(char e) { name = e; Info(); print原创 2021-11-02 14:51:27 · 379 阅读 · 0 评论 -
引用参数的重载
类和STL中经常使用引用参数。那么,引用参数的重载的机制是如何的? void funA(double &p_lv); //对应可在funA中修改的 左值 void funB(const double &p_lrv); //对应左值和右值 void funC(double &&p_rv); // 对应右值其中,funB的参数可以匹配funA和funC的参数。 v原创 2015-03-16 13:01:23 · 718 阅读 · 0 评论 -
inline与宏
在需要编写一段短小的类似函数的功能性代码时,inline函数作为C++中附加的特性,比传统C中的宏(#define)更可靠(至少容易避免错误)。 #define SQUARE(X) X*X宏的工作机制是“字符替换”。 a = SQUARE(5.0); // a = 5.0*5.0 b = SQUARE(4.5 + 7.5); // b = 4.5 + 7.5 * 4.5原创 2015-03-12 11:17:15 · 592 阅读 · 0 评论 -
参数传递(引用,指针,值传递)C++11
C++中,函数的参数传递方式有值传递、地址传递。传地址有指针和引用方式。 在函数参数中,传地址的理由有: 1.使被调函数可以修改主调函数中的数据对象; 2.传地址可以减少数据拷贝,提高程序执行速度。那么,何时使用值传递,何时使用地址传递(指针和引用)? 下面是一些写代码时会遇到的一些情况被调函数使用参数对象时,不会修改数据对象 如果要传入函数的数据对象较小,比如是内建数据类型或小规模的结构体原创 2015-03-13 15:45:38 · 862 阅读 · 1 评论 -
设计模式-策略模式
定义一系列算法类,当算法变化时,不影响客户端. 适用场景:类中的成员以方法为主,算法经常变动. 好处:每种算法都有自己的类,可以通过自己的接口单独测试,简化了单元测试. 缺点:客户端需要判断适用何种算法.// coperation.h #ifndef COPERATION_H #define COPERATION_Hclass COperation { public: COperati原创 2016-10-22 14:16:58 · 164 阅读 · 1 评论 -
设计模式(一):单一职责原则
Single Responsibility Principle(SRP): There should never be more than one reason for a class to change. 单一职责原则的定义:应该有且只有一个原因导致类的变更。 按照字面意思理解,一个类应该只有一个功能才符合单一职责原则。 单一职责原则的好处: 1.因为只有一个职责,类的复原创 2013-06-19 21:23:47 · 780 阅读 · 1 评论 -
设计模式-简单工厂模式
适用情景: 根据输入条件的不同,创建不同的类的对象. 缺陷:客户端需要了解基类和工厂类. C++实现:// coperation.h #ifndef COPERATION_H #define COPERATION_Hclass COperation { public: COperation(); public: int m_nFirst; int m_nSecond;原创 2016-10-20 15:44:19 · 190 阅读 · 1 评论