c++

  • 格式:doc
  • 大小:68.00 KB
  • 文档页数:1

1类和对象之间的关系类是对某一类对象的抽象;对象是某一种类的实例、类的定义方法class 类名{ private:私有数据成员和成员函数 public:公有数据成员和成员函数 };类中成员的访问权限对于public类成员来说,他们是共有的,能被外面的程序访问:@对于private类成员来说,他们是私有的,只能被类中的函数所使用,不能被外面的程序所访问。

对象成员的访问方法访问对象的成员变量,@成员函数和访问变量和函数的方法是一样的,只不过要在成员前面加上对象名和成员运算符“. ”表示方式如下<对象名>.<成员变量> <对象名>.<成员函数>(<参数表>)构造函数和析构函数构造函数是类的成员函数,功能是在创建对象时,实用给定的值将对象初始化。

它有以下特点:构造函数的名字必须与类名相同。

构造函数可以有任意的形参,但不能具有返回值。

定义对象时,编译系统会自动地调用构造函数。

构造函数可以重载析构函数也是类的成员函数,功能是用于释放一个对象,在对象删除前,用它来做一些内存释放等清理工作,与构造函数功能相反。

,它有以下特点:析构函数名也应与类名相同,只是在函数名前面加一个波浪符~。

析构函数不能带任何参数,也没有返回值。

每个类有而且只能有一个析构函数。

析构函数不能重载。

清理内存空间时,会自动地调用析构函数单继承和派生类的构造函数与析构函数基类的构造函数和析构函数不能被派生类继承派生类对象在建立时,先执行基类构造函数,再执行派生类构造函数。

析构函数执行顺序与构造函数相反,先执行派生类析构函数,再执行基类的析构函数。

两种多态性编译时的多态性和运行时的多态性。

编译时的多态性是通过函数的重载或运算符的重载来实现的。

运行时的多态性是通过虚函数来实现的,它是只在程序执行前,根据函数和参数还无法确定应该调用哪一个函数,必须在程序的执行过程中,根据执行情况动态地确定。

1. Windows的应用程序特点有哪些?消息驱动机制图形设备接口(GDI)基于资源的程序设计动态链接库进程和线程2. MFC的AppWizard(exe)提供了哪几种类型的应用程序?(1)单文档界面的应用程序(SDI,single document interface);(2)多文档界面的应用程序(MDI,multiple documents interface);(3)基于对话框的应用程序(dialog based)。

3.MFC应用程序项目组织:dsp 项目文件 dsw 项目工作区文件 cppC++文件,C++头文件工作区窗口的标签页面:Classview页ResourceView页和Fileview页4.MFC程序类结构对话框类CAboutDlg 应用程序类CEx_SDIHelloApp 应用程序文档类CEx_SDIHelloDoc应用程序视图类CEx_SDIHelloView CMainFrame类(用于负责主框架窗口的显示和管理)5.消息的分类有哪些:标准(窗口)消息:窗口消息一般与窗口内部运作有关,如创建窗口,绘制窗口,销毁窗口,通常,消息是从系统发到窗口,或从窗口发到系统。

命令消息:命令消息通常与处理用户请求有关,当用户单击一个菜单或工具栏时,命令消息就产生了。

并发送到能处理该消息的类或函数。

控件消息:由控件产生的消息,例如,按钮的单击,列表框的选择等均产生此类消息,为的是向其父窗口通(通常是对话框)通知事件的发生。

6.使用一个对话框的一般过程:①添加对话框资源;②设置对话框的属性;③添加和布局控件;④创建对话框类;⑤添加对话框代码;⑥在程序中调用对话框。

7模式对话框和无模式对话框⑴模式对话框:所谓的模式对话框是指对话框弹出时,用户必须向对话框进行相应的操作,在退出对话框之前,其所在的应用程序是不能往下执行的。

⑵无模式对话框:无模式对话框是指对话框弹出后,一直保留在屏幕上,用户可以在对话框所在的应用程序中进行其他的操作。

两种对话框在编辑器设计和使用ClassWizard进行编程时方法基本一致,但在创建和退出对话框窗口时的方式不同。

在创建时,模式对话框是由系统自动分配内存空间,因此在对话框退出时,对话框对象自动删除。

而无模式对话框则需要用户来指定内存,退出时还要自己删除对话框对象。

在退出时,两种对话框所用的终止函数不一样。

模式对话框通过调用CDialog::EndDialog来终止,而无模式对话框则是通过调用CWnd::DestroyWindow来终止。

8.静态控件的类型静态文本组框静态图片9.按钮的分类、消息按钮控件是CButton类的控件。

按键按钮单选按钮复选框按钮(复选框的外形是在文本前有一个空心方框,当它被选中时,复选框中就加上一个标记,通常复选框只有选中和未选中两种状态,若复选框前面有一个是灰色,则这样的复选框是三态复选框,它表示复选框的选择状态是“不确定”。

)BN_CLICKED(单击按钮)BN_DOUBLE-CLICKED(双击按钮)10.updatedate函数UpdateData 函数只有一个TRUE或FALSE的参数。

当调用UpdateData(FALSE)时,数据由控件相关联的成员变量向控件传输,当调用UpdateData(TRUE)或不带参数的UpdateData时,数据由控件向相关联的成员变量复制。

11、工具栏和菜单项的结合方法将工具栏上按钮的ID设置成和菜单项ID一样即可。

12、状态栏的设定方法用MFC AppWizard创建的单文档和多文档应用程序框架中,有一个静态的indicators数组,它是在MainFrm.cpp文件中定义的,被MFC用作状态栏的定义1.添加和减少相应的窗格.要增加一个信息行窗格,则只需在状态栏数组中适当的位置增加一个ID_SEPARATOR标识即可;要增加指示器窗格,则在状态栏数组的适当位置增加一个在“字符串表”中定义过的资源ID。

若要减少窗格,只需减少数组元素即可。

2.如何在状态栏的窗格显示文本?(3种)1.)调用CWnd::SetWindowText更新信息行窗格(或窗格0)中的文本2.)手动处理状态栏的ON_UPDATE_COMMADND_UI更新消息,并在处理函数中调用CCmdUI::SetPaneText函数。

3. 可以调用CStatusBar::SetPaneText函数更新任何窗格中的文本.(通用)1.什么是类?类的定义格式?类的成员一般分为哪两部分?它们的区别如何?⑴“类”是对具有共同的属性特征和行为特征的对象的概括和抽象。

⑶类的成员一般分为数据成员和成员函数两部分。

⑷数据成员一般用来表示对象属性特征,而成员函数一般表示了对象的可以进行的操作,即行为特征。

3.什么是对象?如何定义一个对象?对象的成员如何表示?⑴对象是类的实例,是类的变量。

⑵对象的定义:类名对象名称;或:类名* 对象指针;⑶对象成员的表示:对象名称.成员名字;或:对象指针→成员名字;9.如何对对象进行初始化?对象的初始化都是通过构造函数进行的,只要在声明对象时,逐个添好构造函数的实参。

20.派生类是如何定义的?它有哪些特点?⑴定义派生类的一般形式为:class 派生类名:[引用权限] 基类名{ 派生类新增的数据成员派生类新增的成员函数};⑵派生类继承了基类的所有数据成员和成员函数,并增加新的成员。

21.派生类的继承方式有哪些?它们各有哪些特点?①当引用权限为public时,称为“公用派生类”。

在公用派生类中,基类的public成员和protected成员仍然成为派生类中的public成员和protected成员;然而基类中的私有成员却成为了派生类中的“不可访问的成员”,不能被派生类使用。

②当引用权限为private时,称为“私有派生类”。

在私有派生类中,基类的公用成员和保护成员成为了派生类中的私有成员,基类的私有成员成为派生类“不可访问的成员”。

③从以上两点可以看出,基类中的私有成员在派生类中都成为了“不可访问的成员” 。

因此在继承中经常使用另外一种封装字protected,被protected封装的成员称为“保护成员”,保护成员和私有成员相似,不能被外界引用,但它却可以被派生类的成员函数引用。

22.在定义派生类的过程中,如何对基类的数据成员进行初始化?基类的数据成员初始化往往是通过基类的构造函数进行的,但是在么在建立派生类的对象时,是不会自动执行基类的构造函数,因而就会使基类中成员变量未初始化。

所以在设计派生类的构造函数时,不仅要考虑派生类所增加的成员变量初始化,还应当考虑基类的成员变量初始化。

在执行派生类的构造函数时,应当调用基类的构造函数。

因此考虑到基类成员变量初始化后,派生类的构造函数一般形式为:派生类构造函数名(参数表):基类构造函数名(参数表)23.在派生类中能否直接访问基类中的私有成员?在派生类中如何实现访问基类中的私有成员?在派生类中是不能直接访问基类中的私有成员的,要在派生类中访问基类中的私有成员,只能通过基类所提供的public或protected封装的成员函数进行。

24.什么是虚基类?它的作用如何?在声明派生类时,在基类的引用权限前面加上virtual,就将基类声明成了虚基类,即:class 派生类名:virtual [引用权限] 基类名虚基类的引入主要是针对多重派生的,是为了消除派生类的二义性使用的。

通过虚基类派生出来的新类,同一个成员变量在不同的派生类中都只有一个复制,当通过普通基类派生的新类,同一个成员变量,在不同的派生类中的副本是不一样的。

25.多态性:不同类型的对象接收相同的信息时产生不同的行为。

例如函数重载。

分类:(1) 编译时的多态性:函数重载或运算符重载。

(2) 运行时的多态性:虚函数。

即在程序执行之前,根据函数和参数无法确定应该调用哪个函数,必须在程序的执行过程中,根据执行情况动态的确定。

第3章MFC基本应用程序的建立4.用AppWizard创建一个多文档应用程序项目(MDI)Ex_MDIHello,比较MDI与SDI有哪些区别?SDI应用程序由应用程序类(CWinApp)、框架窗口类(CFrameWnd)、文档类(CDocument)、视图类(CView)和文档模板类(CSinSleDocTemplate)共同作用。

MDI应用程序与SDI应用程序的主要差别在于:MDI有CMDIFrameWnd和CMDIChildWnd两个框架窗口类,前一个派生CMainFrame类,负责菜单等界面元素的主框架窗口管理;后一个派生CChildFrame类,负责相应的文档及其视图的子框架窗口维护。

而SDI由框架窗口类CFrameWnd派生CMainFrame类。

第4章对话框及常用控件1.什么是对话框?它分为哪两类?这两类对话框有哪些不同?(2)对话框是CDialog类的派生类,它的主要功能是输出信息和接收用户的输入。