把delphi从1.0用到了如今的6.0,回头看看,除了对mis、数据库、几个界面控件的认识外,所知无几,delphi这个编程软件
的确是一个值得称赞的东西,从设计到使用,优点多多。但今日找工作,人必问C/C++,心中感慨万千,幸亏对候先生的书,熟
读了几遍,但实践经验颇少,于是拼命看书。无言。
我是个Coding。
优秀vc网站:www.vckbase.com,学习后部分笔记,给可能需要的朋友。
1、异常处理 try {} catch(Ex& exc){},建议最后加入catch(...){}处理可能没有预计到的错误
2、模板的成员函数不能是虚函数【没有完全明白,学习中】
3、定义一个不修改变量的成员函数时候,定义为const成员函数是一个好办法
4、如果一个类作为其他类的基类,析构函数应该是virtual,这样可以支持RTTI,和对象析构时候可以执行正确地析构函数
5、颇通的函数名隐式的转换为函数的地址,但成员函数需要如此调用&A::Func();
6、注意I++,和++i的区别,前者是先用后加,后者是先加后用
7、逗号分割表达式,如【while (++i,--J,dRecored.eof,sRecord.bof){}】
8、两个类互为成员函数的时候。1.提前声明一个类。2.被提前声明的类在另外一个类中只能声明外指针或者引用。
9、所有成员函数都缺省为内联函数,编译器根据函数的复杂度来确定是否将函数编译成为非内联函数,如果强制声明
非内联函数,该如下:#pragma auto_inline;
10、全局变量声明:【声明文件】int i; 【使用文件】 extern int i;
11、内联函数的声明必须是在函数实现的地方声明,而不是在函数定义的地方
12、inlude "windows.h" 和include <windows.h>的区别在于寻找文件的顺序不同
前者是现在当前目录下寻找文件,没有的化再去编译器定义的路径寻找
后者相反,先找编译器定义的路径,在回到当前目录查找
13、如何将一个CString类型的变量转换为Int类型 int xx = atoi(CString mm);
14、_T()自动将()内字符串转成unicode or Multibyte-character or SBCS (ASCII) 根据系统宏定义
15、将字符串的末尾空格去掉,str.TrimRight();
16、CTime time = CTime::GetCurrentTime(); 取得当前时间
还可以用CTime::Format函数将CTime对象转换为字符串对象
使用GetSystemTime()这个API函数得到系统时间
17、给控件设置焦点的两个方法
1.变量 m_edit1.SetFocus();
2.控件ID GetDlgItem(IDC_EDIT1)->SetFocus();
18、AppWizard所产生的STDAFX文件是干什么用的,它主要是协助产生预编译头文件的。通常你是不需要修改它的。
19、MessageBox函数来自CWnd类,所以你只能在从CWnd继承的类(如CView)中调用它。
但是,MFC也提供了AfxMessageBox函数,你可以在任何地方调用它。
20、虚拟函数PreCreateWindow是干什么用的:PreCreateWindow允许你在调用CreateWindow之前来改变窗口属性