摘要: 1、字符串数字之间的转换(1)string --> char *string str("OK");char * p = str.c_str();(2)char * -->stringchar *p = "OK";string str(p);(3)char * -->CStringchar *p ="OK";CString m_Str(p);//或者CString m_Str;m_Str.Format("%s",p);(4)CString --> char *CString str(" 阅读全文
posted @ 2013-03-27 15:27 卧野观云 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 摘要——继承是扩展方法之一——继承的运行方式是单向的,即儿子认识老子,老子不识儿子(可见这老子到处留情,管生不管养:) );——指向对象的指针(或引用),可以指向其子类,但不能调用子类方法 Fateher* pFather = new Son(); //OK! pFather->SonMethod(); //error!——禁用继承(C++11) class Taijianfinal //“绝后”:欲练神功,必先自宫!:) { //... } 此时,子类不能再继承Taijian——关于virtual当子类想替换或重写父类的方法时,则(在父类及子类)该方法的声明前必须加“vir... 阅读全文
posted @ 2013-03-11 08:51 卧野观云 阅读(172) 评论(0) 推荐(0) 编辑
摘要: ——关于概念的区别引用:是一个别名,它在逻辑上是不独立的,它的存在具有依附性(自始至终只能依附于同一个变量,不能改变),所以引用必须在一开始就被初始化。从一而终没有const“sizeof引用”得到的是所指向的变量(对象)的大小指针:从本质上讲就是存放变量地址的一个实体变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。见异思迁有const,const的指针不可变“sizeof指针”得到的是指针本身的大小;——关于传递参数的区别引用:被调函数对形参做的任何操作都会影响主调函数中的实参变量指针:被调函数对形参做的任何操作都不会影响主调函数中的实参变量 阅读全文
posted @ 2013-02-27 08:26 卧野观云 阅读(148) 评论(0) 推荐(0) 编辑
摘要: ——const成员意味着:在创建并初始化之后数据成员的值不能再改变;const数据成员通常也是静态的(因为在对象层次上,常量通常没有意义),即 static const int m_Maxdata = 100;如果某个常量只适用于类,则应该使用静态常量数据成员,而不要使用全局常量。——const方法以下为转载-----------------------------------——cons的作用(1)可以定义const常量 例如: const int Max=100; int Array[Max]; (2)便于进行类型检查 ... 阅读全文
posted @ 2013-02-26 08:35 卧野观云 阅读(711) 评论(0) 推荐(0) 编辑
摘要: ——什么时候使用静态数据成员没必要让所有类对象都包含某个变量的副本(需要被类及派生类的所有对象共享);或者这么做无法完成特定的任务 例如:一个类内部的计数器(每产生一个对象,自动加1),此时就没有必要使类的每个对象都包含这样的副本——怎么定义静态数据成员C++11版本static int sCounter = 0; //直接在头文件中类的定义中声明和定义即可以前的版本Step1:在类定义中声明:static int sCounter;Step2:在cpp中初始化:const className::sCounter = 0;——怎么使用静态数据成员在类的方法内访问:同普通数据成员在类的方法外访问 阅读全文
posted @ 2013-02-22 09:01 卧野观云 阅读(797) 评论(0) 推荐(0) 编辑
摘要: ——由堆区创造出的对象数组(动态分配对象数组),只能调用缺省构造函数,不能调用任何其它构造函数;如果没有缺省构造函数,则不能创建对象数组;动态分配对象数组:className *cArray = New className[n]; //int n = XXX;释放对象数组:delete []cArray;——无论什么时候在类中动态分配了内存,都应该编写自己的复制构造函数、赋值运算符以及析构函数,以提供深层的内存复制;复制构造函数:className(const className& c1);赋值运算符:className& operator= (const className& 阅读全文
posted @ 2013-02-21 08:48 卧野观云 阅读(270) 评论(0) 推荐(0) 编辑
摘要: ——C++11构造函数的新特性委托构造函数:允许构造函数调用同一个类的其它构造函数。(而在此之前,虽然编译可通过,但不能像预期那样调用构造函数以初始化对象)引入显式默认构造函数:MyClass() = default; //仅在类定义中声明,而不需具体实现显式删除构造函数: MyClass() = delelete; //想定义一个没有任何构造函数,且不想让编译器生成默认构造函数时使用;——什么时候需要默认构造函数当需创建某个类的对象数组时:MyClass myC[3];当想要在STL容器(如std::vector)中存储类时;当在其他类中创建该类对象时(即该类对象是其他类的成员变量... 阅读全文
posted @ 2013-01-31 10:22 卧野观云 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 使用对象的两种方式: ——栈中的对象: 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之后最好重置为空,可防止 阅读全文
posted @ 2013-01-30 08:46 卧野观云 阅读(180) 评论(0) 推荐(0) 编辑
摘要: #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( 阅读全文
posted @ 2013-01-29 08:41 卧野观云 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 关于注释: ——说明调用顺序(例如:如果在未调用XXX之前使用本方法,则会抛出某某信息)关于分解: ——任何子任务或者明显复杂的任务都应该分解为独立的函数或方法; ——在任何区域代码都不应该显得太拥挤(不存在大段代码,或者一大片) 阅读全文
posted @ 2013-01-28 10:17 卧野观云 阅读(106) 评论(0) 推荐(0) 编辑