摘要:
1、函数应该短小2、函数应该只做一件事,只做好一件事3、判断函数只做一件事,要看函数能否再拆出一个函数来4、每个函数一个抽象层级5、参数不要多,最好不要传入bool值作为参数,能用返回值返回的,绝对不用输出参数返回,应避免使用输出参数6、如果参数需要两个、三个或以上参数,可以将其中的一些参数封装为类以减少参数。7、分割指令与询问:即回答什么事与做什么事要分离8、使用异常替代返回错误码:返回错误码导致更深层次的嵌套结构,即在结构内部去处理错误9、错误处理就是一件事10、写出这样函数的方法:先实现再打磨,配上一套单元测试 阅读全文
摘要:
BeginPaint获取DC,是在响应WM_PAINT消息时PAINTSTRUCT ps;case WM_PAINT: hdc = BeginPaint(hwnd, &ps); //do something EndPaint(hwnd,&ps);其绘图范围是ps结构中指定的无效区域,即PAINTSTRUCT结构中的rcPaint指示的区域。BeginPaint会使无效区域变得有效。GetDC获取窗口整个客户区的区域,其绘图范围是整个客户区,GetDC不管客户区中有无无效区域,自然也就不会使客户区中存在的无效区域变得有效。 阅读全文
摘要:
子类有三种方式从基类处继承,分别是private、protected和public。例:class A{private: int a1;public: int a2; int getNum(){return a1;}};class B:public A{};在B中,就相当于class B{public : A a;}B类对象直接可以访问A中的a2成员,但不能直接访问A中的a1成员,但是可以调用A提供的外部接口B b;cout<<b.a2; //right,b中没有重新定义a2变量,默认就调用b.A::a2,此处A::可以省略。cout<<b.a1; //errorcou 阅读全文
摘要:
int a[5]={1,3,5,7,9};int *p = a;(1)cout << *p++; //取值然后再移动指针,结果1,p指向3(2)cout<<(*p)++; //取值再加值,结果1,p的内容改为2(3)cout << *(p++); //取值然后再移动指针,结果1,p指向3(4)cout << *++p; //移动指针再取值,结果3,p指向3(5) cout<<*(++p); //移动指针再取值,结果3,p指向3(6)cout <<++*p; //取值再加值,结果2,p的内容改为2(7)cout<< 阅读全文
摘要:
v的类型是char[]型,char[] 可以隐式转换成char *型,即char * p=v;//ok但v不能再被赋值,即char * q="abc", v=q;//error其在特征上类似于char * const 型(或许内部即是这样实现,但我不曾在资料中发现此明确说法) 阅读全文
摘要:
这个错误产生原因,可参看http://hi.baidu.com/584433640/item/a67db5fbf195b57d3c198b79错误的排除根据情况的不同而有所差异,根本原则是将含有MFC库文件的头文件尽量往前放(对于产生编译冲突的头文件而言) 阅读全文
摘要:
1首先要包含mysql.h所在目录,这样才可以在程序中包含mysql.h头文件:#include"mysql.h" 配置属性---》vc++目录---》包含目录:C:\Program Files\MySQL\MySQL Server 5.6\include;(即包含mysql.h的include文件夹);2使用其中的API函数时,还需要添加lib文件,在程序中可这样添加:#pragma comment(lib,"libmysql.lib"),同时也要包含lib文件所在目录配置属性---》vc++目录---》库目录:C:\Program Files\MyS 阅读全文
摘要:
错误原因:c运行时库与mfc静态库的冲突引起错误如下:1>nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 libcpmt.lib(newaop.obj) 中定义1>C:\Users\Administrator\documents\visual studio 2010\Projects\UrlTitleLib\Release\UrlTitleLib.exe : fatal error LNK1169: 阅读全文
摘要:
int main(){ string title="This is a test string"; string::iterator pos; pos=remove(title.begin(),title.end(),' '); title.erase(pos,title.end()); cout<<title<<endl;} 阅读全文