MFC相关
下面这些是关于C++/MFC的一些概念和相关的语法。
1. 这些类中,最重要的类是CObject和CCmdTarget。CObject是MFC的根类,绝大多数MFC类是其派生的,包括CCmdTarget。CObject 实现了一些重要的特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持,等等。所有从CObject派生的类都将具备或者可以具备CObject所拥有的特性。CCmdTarget通过封装一些属性和方法,提供了消息处理的架构。MFC中,任何可以处理消息的类都从CCmdTarget派生。
2.针对每种不同的对象,MFC都设计了一组类对这些对象进行封装,每一组类都有一个基类,从基类派生出众多更具体的类。这些对象包括以下种类:窗口对象,基类是CWnd;应用程序对象,基类是CwinThread;文档对象,基类是Cdocument,等等。
3. C++通过虚函数实现多态."无论发送消息的对象属于什么类,它们均发送具有同一形式的消息,对消息的处理方式可能随接手消息的对象而变"的处理方式被称为多态性。
4.虚拟函数是成员函数,它可以在派生类中被重新定义并赋予另外一种功能
5.重载可以是不同的形参
6.类的多态性,成员函数的多态性。
7.多态与重载,重载体现了多态性
8.动态约束即多态性
9.OLE 对象链接和嵌入 MDI多文档界面
从CwinApp,Cdocument,Cview,CMDIChildWnd类对应的派生出CTApp,CTDoc,CTView,CMainFrame,CchildFrame五个类。
10.如果要支持工具条、状态栏,则派生的边框窗口类还要添加CToolBar和CStatusBar类型的成员变量,以及在一个OnCreate消息处理函数中初始化这两个控制窗口。
13. MFC中,使用这些MFC Object,一般分两步:
首先,创建一个MFC Object,或者在STACK中创建,或者在HEAP中创建,这时,MFC Object的句柄实例变量为空,或者说不是一个有效的句柄。
然后,调用MFC Object的成员函数创建相应的Windows Object,MFC的句柄变量存储一个有效句柄。
14. MFC Object随着析构函数的调用而消失;但Windows Object必须由相应的Windows系统函数销毁。
15.指针void*
16. string str(“…………”);//初始化
string str1 = “today is my birthday!”;
string *s = &str;
cout << *s;//输出s的内容
*s = “goodbye”;//修改了str的内容
s = &str1;//换成指向str1
17.定义引用一定要初始化,因为引用已经初始化始终指向同一个特定对象
int &ri = ival, &ri2 = ival2;//引用
ri = ri2;//assigns ival to ival2
这个复制操作修改了ri引用的值ival对象,而并非引用本身。复制后,这两个引用还是指向原来关联的对象,此时这两个对象值相等。