2012年6月26日
摘要: 1、需求对于支持序列化操作的类可以将不同类的不同对象以序列的形式写到文件中;可以通过读取序列化文件还原对应类的对应实例;针对对象的哪些内容进行序列化由对象来决定;2、需求示例2.1、需要序列化的对象对应的类lCNameclass CName:public CObject{public: DECLARE_SERIAL(CName) CName() {m_d1=0;m_d2=0;}; CName(double d1,double d2) {m_d1=d1;m_d2=d2;}; void Serialize(CArchive& ar) { CObject::Serialize(ar); if 阅读全文
posted @ 2012-06-26 15:17 足球王子 阅读(1405) 评论(0) 推荐(0) 编辑
摘要: string 转 CString CString.format("%s", string.c_str()); char 转 CString CString.format("%s", char*); char 转 string string s(char *); string 转 char * char *p = string.c_str(); CString 转 string string s(CString.GetBuffer()); 1,string -> CString CString.format("%s", strin 阅读全文
posted @ 2012-06-26 10:56 足球王子 阅读(249) 评论(0) 推荐(0) 编辑
  2012年6月20日
摘要: 类的三个重要特征:封装、继承、多态性。其中多态性就是通过函数重载(运算符重载实质上也是函数重载)和虚函数来实现的。虚函数的作用:在基类用virtual声明成员函数为虚函数,在派生类中重新定义该函数,就可以通过基类指针或引用来访问基类和派生类中的同名函数。虚函数实现多态性:同一类族中不同类的对象,对同一函数调用做出不同的响应。多态性其实就是一个接口,多种方法,分为静态多态性和动态多态性,函数重载属于静态多态性,在程序编译时就可确定调用哪个函数,其过程称为静态关联或早期关联,静态多态性又称编译时多态性;虚函数属于动态多态性,在程序运行过程中才动态地确定所调用的是那个对象的函数,其过程称为动态关联或 阅读全文
posted @ 2012-06-20 11:53 足球王子 阅读(367) 评论(0) 推荐(0) 编辑
  2012年6月19日
摘要: STL中的所有算法(70个)参考自:http://www.cppblog.com/mzty/archive/2007/03/14/19819.htmlhttp://hi.baidu.com/dinglinbin/blog/item/887e7c30c12e429ba9018e30.html STL算法部分主要由头文件<algorithm>,<numeric>,<functional>组成。要使用 STL中的算法函数必须包含头文件<algorithm>,对于数值算法须包含<numeric>,<functional>中则定义了 阅读全文
posted @ 2012-06-19 09:26 足球王子 阅读(6102) 评论(0) 推荐(1) 编辑
  2012年6月18日
摘要: 1,学习目标1.理解类模板的概念;2.掌握类模板的定义、实例化过程,会运用类模板;3.掌握栈类模板、链表类模板的使用;4.理解STL编程的基本思想;5.掌握STL容器的使用;6.熟练使用STL算法;7.理解STL函数对象;类模板模板是C++语言的重要特征,它能够显著提高编程效率。利用C++的函数模板和类模板,能够快速建立具有类型安全的类库集合和函数集合,进行大规模软件开发,并提高软件的通用性和灵活性。C++的标准模板库(standard template library,简称STL)编程完全依赖模板的实现。 类模板是能根据不同参数建立不同类型成员的类。类模板中的数据成员、成员函数的参数、成员函 阅读全文
posted @ 2012-06-18 16:15 足球王子 阅读(8391) 评论(0) 推荐(0) 编辑
摘要: 问题如下:写一个程序,读取文本文件,判断关系结构是否存在错误。文件格式如下:1,24,23,58,12, 8…每一行的两个数字a,b表示a>b 上面的文件中,因为1>2 8>1 所以当读到2>8时要返回错误,并指出错误的行号。如果没有错误 那么把正确的结果排序输出。解决思路如下:要想判断后续的序列是否存在逻辑错误,必须将每个元素的后续元素都保存起来。比如,1是大于2的。必须将2保存起来,并和1关联。8是大于1的,并且1大于2,因此必须将8>1>2都保存起来。我的程序如下:#include<iostream>#include <map> 阅读全文
posted @ 2012-06-18 10:58 足球王子 阅读(531) 评论(0) 推荐(0) 编辑
摘要: #pragma warning(disable : 4786 ) #include <string> #include <iostream> #include <algorithm> #include <map> #include <vector> using namespace std; typedef map<string, string> STRING2STRING; typedef std::map<string, vector<string > > STRING2VECTOR; int m 阅读全文
posted @ 2012-06-18 10:35 足球王子 阅读(6525) 评论(0) 推荐(0) 编辑
摘要: STL提供了很多实用的算法,这里主要讲解sort和unique算法。删除重复元素,首先将vector排序。sort( vecSrc.begin(), vecSrc.end() );然后使用unique算法。vecSrc.erase( unique( vecSrc.begin(), vecSrc.end() ), vecSrc.end() );unique返回值是重复元素的开始位置。如果vector中存储的元素是自定义的结构或者是类,那么就需要重载操作符。根据类的某一个成员变量排序或者比较。sort算法需要重载"<"操作符。unique算法需要重载"==&qu 阅读全文
posted @ 2012-06-18 10:34 足球王子 阅读(218) 评论(0) 推荐(0) 编辑
  2012年6月16日
摘要: 我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float max( float x,float y){return (x>y)? x:y ;}//函数3.double max(double x,double y){return (c>y)? x:y ;}但如果在主函数中,我们分别定 阅读全文
posted @ 2012-06-16 16:17 足球王子 阅读(280) 评论(0) 推荐(0) 编辑
摘要: C++标准库的所有头文件都没有扩展名。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。 <cname>形式的标准头文件【 <complex>例外】其内容与ISO标准C包含的name.h头文件相同,但容纳了C++扩展的功能。在 <cname>形式标准的头文件中,与宏相关的名称在全局作用域中定义,其他名称在std命名空间中声明。在C++中还可以使用name.h形式的标准C库头文件名。C++标准库的内容分为10类:C1.语言支持 C2.输入/输出 C3.诊断 C4.一般工具 C5.字符串C6.容器 C7.迭代器支持 C8.算法 C9.数 阅读全文
posted @ 2012-06-16 14:08 足球王子 阅读(352) 评论(0) 推荐(0) 编辑