01 2013 档案
摘要:——C++11构造函数的新特性委托构造函数:允许构造函数调用同一个类的其它构造函数。(而在此之前,虽然编译可通过,但不能像预期那样调用构造函数以初始化对象)引入显式默认构造函数:MyClass() = default; //仅在类定义中声明,而不需具体实现显式删除构造函数: MyClass() = delelete; //想定义一个没有任何构造函数,且不想让编译器生成默认构造函数时使用;——什么时候需要默认构造函数当需创建某个类的对象数组时:MyClass myC[3];当想要在STL容器(如std::vector)中存储类时;当在其他类中创建该类对象时(即该类对象是其他类的成员变量...
阅读全文
摘要:使用对象的两种方式: ——栈中的对象: CStudent stu; stu.setAge(14); cout<<"Age is :" << stu.getAge(); ——堆中的对象:使用new/delete CStudent *pStu; pStu->setAge(14); cout<<"Age is :" << pStu->getAge(); delete pStu; pStu = nullptr; //若编译器不支持,则 pStu = NULL; 说明:delete之后最好重置为空,可防止
阅读全文
摘要:#include <sstream> //头文件是sstreamstring doubleToString(double inValue) const{ ostringstream ostr; //创建一个流 ostr << inValue; //把值传递如流中 return ostr.str();}double stringToDouble(string inString) const{ double temp; istringstream istr(inString); //从string对象inString中读取字符 istr >> temp; if(
阅读全文
摘要:关于注释: ——说明调用顺序(例如:如果在未调用XXX之前使用本方法,则会抛出某某信息)关于分解: ——任何子任务或者明显复杂的任务都应该分解为独立的函数或方法; ——在任何区域代码都不应该显得太拥挤(不存在大段代码,或者一大片)
阅读全文
摘要:重构(refactoring)是更改代码结构的行为。重构的目的是定期清理堆积的代码,使得代码更容易阅读以及维护。重构代码的技术: ——增强抽象技术封装字段:将字段设置为protected,并给出访问字段的get和set方法;让类型通用:为了更好地共享代码,创建更通用的类型。 ——分割代码使其更为合理的技术提取方法:将较大的方法转换成易于理解的新方法;提取类:将现有类的部分代码转移到新类。 ——增强代码名称以及位置的技巧移动方法或者移动字段:移动到更合适的类或者源文件;重命名方法或者字段:改变为更能体现出其目的的名称;上移:移动到父类,超类下移:移动到子类
阅读全文
摘要:可重用代码有两个重要目标: ——代码必须通用,不要涉及特定应用程序细节; ——代码应该易用,接口和功能好理解。重用代码的方式: ——源代码:直接整合; ——静态库:连接; ——动态库。设计可重用代码最重要的策略: ——抽象设计接口:要易用,屏蔽实现细节设计实现构建理想的重用代码 ——避免组合不相干的概念或者逻辑上独立的概念(一个方法只干一件事情)将程序分为逻辑子系统,每个子系统都遵循抽象原则;用类层次结构分离逻辑概念(不同的子系统分属不同的类)当不适合使用继承方法时,用聚合分离逻辑概念,即分离没有关系的功能或者有关系但是独立的功能;消除用户接口的依赖性;对泛型数据结构以及算法使用...
阅读全文
摘要:如果, ——想让函数返回2个或以上的值; ——或者想让函数能改变传递过来的变量值;那么, ——可以使用C方法:传递一个指向变量的指针而不是变量本身。 但这样做的唯一问题是:在一个非常简单的任务中引入了复杂的指针语法。结论: ——可以使用C++方法:引用,“类型&”(例如 int& i),可以像普通变量那样使用这个变量,但在幕后它实际上是一个指向原始变量的指针。
阅读全文
摘要:有三种办法是用C++中的字符串:1,C风格 数组: char arrayString[20] = "Hello, World"; 指针: const char* pointString = "Hello, World"; 头文件:<cstring>2,C++风格 string类: string myString ="Hello, World"; C++ 类的好处是:可以直接是用运算符。3,非标准风格 如:MFC中的Cstring,目的是为了向后兼容或者处理遗留问题。当开始一个C++项目时,提前决定如何表示字符串非常重要。
阅读全文
摘要:栈:先进后出,用完就扔(要想退出函数就消失,就放在栈里)堆:与当前函数以及栈没关系(要想退出函数还要用,就放到堆里new)堆的使用:1,数组在栈里,需知道确切的大小;可以使用动态内存将数组放入堆,这样就可以在运行时指定数组大小;int *myVariableSizeArray;myVariableSizeArray = new int[arraySize];//usemyVariableSizeArray[3] = 2;//deletedelete []myVariableSizeArray;2,指针int *myPoint = new int;//use*myPoint = 8;
阅读全文
浙公网安备 33010602011771号