面向对象复习资料2014整理版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对话框的两种形式:模态非模态
定义对象是调用类的构造函数,释放对象时调用类的析构函数
重载是指同一个函数名,但是参数个数或参数类型不同的一组函数
在MFC框架应用程序中,视图类通过OnDraw成员函数完成绘制操作
面向对象程序设计的三个主要特点是:封装继承多态
线程可以分为用户界面线程工作者线程两种
根据其存储属性不同,类的数据成员可以分为:静态数据成员,动态数据成员
类成员的访问控制有:public protected private三种
函数参数传递的三种方式是:值指针引用
操作符可以重载为类的友元函数和成员函数两种
动态链接库的入口函数名称是dllmain
MFC单文档程序的四个主要类是:CView CDocment CApp CMainframe
MFC应用程序中,用户自定义消息的编号必须从WM_USER 开始
C++程序的编译链接过程中,对函数的调用处理分为:静态绑定动态绑定
MFC中三种常用的GDI对象:CPen CBrush CBitmap
为支持序列化,对象所属类必须从CObject派生
标准的Windows消息必须以WM 命名
线程同步的方法:原子访问互锁函数关键代码
使用设备上下文对象的两种方法:SelectStockObject() SelectObject()
MFC声明、开始、结束消息映射的宏是:DECLARE_MESSAGE BEGIN_MESSAGE END_MESSAGE MFC的应用程序根据其结构可以分为:SDI MDI Dialog三种
拷贝构造函数的形参必须是引用参数
编译过程中产生错误的原因是:语法错误、上下文关系错误
类和对象的关系可表述为:类是对象的抽象,对象是类的实例
只保留公共基类的一个复制,就必须用关键字Virtual声明为虚基类(消除二义性)
如果一个类包含一个或者多个纯虚函数,则该类称为抽象类
C++的两种代码复用方式:继承组合
一个类可以定义多个构造函数,但是只能定义一个析构函数
静态对象只能被构造一次
析构函数的作用是:在对象被系统释放之前做一些内存清理工作。
winmain函数的主要功能?
答:注册窗口类,创建主窗口,显示主窗口,进入消息循环,遇到WM_CLOSE消息退出。
windows应用程序的运行机制?
答:①找到入口函数WinMain()②声明并设计窗口类对象Instance()③注册窗口④创建窗口⑤显示窗口⑥定义消息⑦消息循环run()⑧遇到WM_CLOSE消息退出
消息处理:(基本同上,加上右句)调用WndProc消息函数:处理各种消息
消息处理机制:通过宏定义将消息分派到不同的成员函数进行处理的机制
While(GetMessage(&msg,NULL,0,0))
{ TranslateMessage(&msg);
Dispatch Message(&msg) }
windows应用程序的启动过程?
答:①Windows将程序载入内存②构造全局对象theApp ③Windows调用全局函数WinMain() ④WinMain寻找唯一的一个CWinApp的派生类的对象⑤WinMain调用theAPP 的Instance()函数⑥重写的Instance()启动载入文档并显示主框架窗口和视图窗口的进程⑦Winmain调用theApp的run()函数,进入消息循环⑧遇到WM_DESTROY消息退出
对话框的创建过程?
答:①添加对话框资源②为新加入的对话框资源添加类③声明该对话框类的对象,并添加该类的头文件④调用该类的DoModal函数来激活模式对话框,或者先调用Create函数,然后调用ShowWindow函数来激活非模态对话框。
打印处理及相关函数:
答:①OnPreparePrinting()设置页码;②OnBeginPrinting()创建GDI对象③OnPrepareDC()设置映射模式④OnPrint()具体完成打印⑤OnEndPrinting()删除GDI对象
消息路由过程?
SDI程序:View Document Mainframe Application
MDI程序:View Document Childframe Mainframe Application
自定义消息流程:
答:①在头文件中定义消息#define WM_USERMESSAGE WM_USER+1
②在头文件的DECLARE_MESSAGE_MAP()语句之前的一对AFX_MSG之间添加消息处理函数原形afx_msg void OnProcName(WPARAM wParam, LPARAM lParam); ③在实现文件的BEGIN_MESSAGE语句之后,在一对AFX_MSG_MAP之间添加消息映射宏ON_MESSAGE(WM_USERMESSAGE,OnProcName) ④在实现文件中给出消息处理函数的具体实现
坐标映射方式
答:①设备坐标:以像素表示的坐标值②逻辑坐标:当前映射方式下的坐标值③映射方式:逻辑坐标和设备坐标之间的比例关系
文档和视图交互的函数:
答:文档保存数据,视图显示和编辑数据;CView::GetDocment得到对应的文档对象;CDocument::UpdateAllViews更新所有的视图对象; CView::OnUpdate由框架调用响应UpdateAllViews调用; CView::OnInitialUpdate视图初始化; CDocument:: OnNewDocument新建文档对象时调用。
串行化:
答:①使类成为可串行化的类②DECLARE_SERIAL(类名),IMPLEMENT_SERIAL(类名,基类名,模式号) ③编写一个Serialize()函数④在派生类的Serialize()函数中调用基类的Serialize()函数,如果基类不是CObject,则不必调用⑤Serialize(Carchive &ar)的参数是一个归档类对象的引用⑥归档类重载了插入和提取操作符