8月10日
自己展示一下学习成果!
《写给大家看的C++》这本书看了85%了,至此,C++的初级的知识内容我已经掌握。指针、类的继承、构造函数等等,比较难的如重载操作符我就跳过去了。
动态内存管理和指向对象的指针这块比较难,我理解了一部分。如:
pointer->method
表示,引用指针变量pointer所保持地址的对象的方法,可以写为(*pointer).method。这个知识点之前搞的我相当的晕。
另:
AClass *pointer=new AClass;
表示,在内存创建了一个AClass类的实例,该实例的地址保存在pointer的变量里。该内存只能用delete释放。
那么,
AClass AObject;
这样创建一个实例,就是静态的么。这两种创建实例的方法有什么区别?
《写给大家看的C++》一书实在值得推荐。推荐此书是因为它够浅,对每个知识点都用最简单的例子,而且不很深入。我用了2个星期看完这本书,就可以遍历C++基础知识的所有知识点。
要知道,学习最关键的是兴趣,学习入门书如果太难的话,看到某处就会裹足不前,看不下去了,兴趣也会受打击。
该书浅显易懂,细致入微,引导我一步一步的学下去,真的非常感谢这本书的作者和译者。
————————————————————————————————————
之所以这么着急学C++也是为了赶快学VC++。我上周一直在看《VC++深入讲解》-孙鑫的视频,前面讲的不错,但看到MFC程序框架这块是完全的晕菜,连Winmain函数也找不到,也不知道谁是谁的子类和父类,真乱!(其实跳过去直接看创建对话框等应用到还好,但是我要理解他基础的原理)。
郁闷,周末跑去书店,在《Visual C++2008入门经典》-Ivor Horton 中看到这样一个MFC原理的简单范例,看完后我发现看懂了(终于),很兴奋,这本书写的不错,够浅!买下!(128元,比字典还厚)。~~我用的VC还是6.0呢
这个范例我很喜欢,是这样的:
大家看看我理解的正确吗?
创建一个新工程,创建一个cpp源文件,所有代码都放在这一个文件里,把工程-属性里改成包含共享MFC的dll文件。
#include<afxwin.h> //包含MFC基础类的头文件
//定义一个CWinAPP新的子类
class COurApp:public CWinApp
{
public:
virtual BOOL InitInstance();
};
//定义一个CWinFrameWnd的新子类
class COurWnd:public CFrameWnd
{
pubilc:
COurWnd() //构造函数
{
Create(0,"sample"); //用继承了的方法create创建一个窗口,标题"sample"
};
};
// 定义方法
BOOL COurApp::InitInstance()
{
m_pMainWnd=new COurWnd; //动态创建一个COurWnd的实例,内存地址保存在指针m_pMainWnd里
m_pMainWnd->ShowWindow(m_nCmdShow); //调用该实例的方法,参数是m_nCmdShow(还不知道这个参数是干啥的)
return true;
}
//创建一个实例
COurApp AnApplication;
运行该程序,就是一个窗口了。
从看代码中我了解到,程序启动顺序是创建COurApp类的一个实例,该类的析构函数肯定会调用InitInstance()函数(我猜的),该函数运行就创建COurWnd的实例,COurWnd的构造函数会调用create(),然后使用showwindow方法显示窗口。就这些。
这就算开始了!
好吧,开是学习VC++吧!