友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

C语言实例教程(PDF格式)-第23章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




其结果是不确定的。还有,由于抽象类的析构函数可以被声 

明为纯虚函数,这时,我们应该至少提供该析构函数的一个 

实现。一个很好的实现方式是的抽象类中提供一个默认的析 

构函数,该析构函数保证至少有析构函数的一个实现存在。 

如下面的例子所示:  


…………………………………………………………Page 108……………………………………………………………

class classname  



{  



// 其它成员  



public:  



~classname()=0  



{  



// 在此添加析构函数的代码  



}  



};  



由于派生类的析构函数不可能和抽象类的析构函数同名,因 

此,提供一个默认的析构函数的实现是完全必要的。这也是 

纯虚析构函数和其它纯虚成员函数的一个最大的不同之处。 

一般情况下,抽象类的析构函数是有派生类的实现对象释放 

时由派生类的析构函数隐含的所调用的。  



            第五节 ClassView和WizardBar  



Visual C++在Microsoft Developer Studio中提供了几个工 

具来使用得创建和组织类非常的方便。这些工具包括 

ClassView、WizardBar和ClassWizard 。其中ClassWizard只 

能用于基于MFC应用程序,因此我们将在以后的部分中讲述它 

的使用,在本节中,只涉及了ClassView和WizardBar中的部 

分内容。  



2。5。1 使用ClassView  



使用ClassView可以完成以下工作:  



  n 向工程中添加新类  



  n 向类中添加成员函数和成员变量  



  n 重载基类中的虚函数  



  n 添加消息处理程序  



  n 跳转到类或成员的定义  


…………………………………………………………Page 109……………………………………………………………

n 跳转到类或成员的引用  



n 显示派生类或基类的图形  



n 将类添加到Gallery中以便以后重用  



n 在成员函数中设置断点  



n 使用访问类型组织类的成员  



n 向接口中添加属性和方法  



n 向ActiveX控件添加事件  



n 在工程空间中创建新的文件夹  



n 察看类及其成员的属性  



                                



         图2。 7 工程ClassViewDemo的ClassView窗格  



                                       


…………………………………………………………Page 110……………………………………………………………

                     图2。8 新建类的对话框  



为了进行下面的示例,首先创建一个空的Win32                          Console  

Application工程,这里,我们假定工程名为 

ClassViewDemo,当然,你也可以使用其它的工程名。  



在Workspace窗口中打开ClassView窗格,如图2。7所示。下面 

我们使用ClassView向工程中添加一个类Creature。方法如 

下:  



1。 右击ClassViewDemo classes节点,选择New Class命令, 

出现如图2。8的对话框。  



2。    在Name处输入新的类名,确认在Class                 Type中选择了 

Generic Class,对于Win32 Console Application,这也是 

唯一可用的选项。  



3。     如果需要,可以在下面的Base                 class(es)中选择类 

Creature的基类和继承方式。这里,我们不需要为类 

Creature指定基类。  



4。  单击File  name处的Change按钮改变类的头文件和实现文 

件为creature。h和creature。cpp。  



5。 最后,单击OK完成。  



这时,Visual C++自动生成了下面的两个文件:  



creature。h:  



// creature。h: interface for the Creature class。  



//  



//////////////////////////////////////////////////////////////////////  



#if !defined 

(AFX_CREATURE_H__90147538_FA97_11D1_BBF0_0000B4810A31__INCLUDED_)  



#define AFX_CREATURE_H__90147538_FA97_11D1_BBF0_0000B4810A31__INCLUDED_  



#if _MSC_VER 》= 1000  



#pragma once  



#endif // _MSC_VER 》= 1000  


…………………………………………………………Page 111……………………………………………………………

class Creature   



{  



public:  



Creature();  



virtual ~Creature();  



};  



#endif // !defined 

(AFX_CREATURE_H__90147538_FA97_11D1_BBF0_0000B4810A31__INCLUDED_)  



creature。cpp:  



// creature。cpp: implementation of the Creature class。  



//  



//////////////////////////////////////////////////////////////////////  



#include 〃〃  



#include 〃creature。h〃  



//////////////////////////////////////////////////////////////////////  



// Construction/Destruction  



//////////////////////////////////////////////////////////////////////  



Creature::Creature()  



{  



}  



Creature::~Creature()  



{  



}  



这里,我们需要删掉creature。cpp文件中的  



#include 〃〃  



一行。  


…………………………………………………………Page 112……………………………………………………………

在上面的过程中,还 自动生成的类Creature的构造函数和析 

构函数的框架,并且,其析构函数还被声明为虚函数。  



下面的步骤添加类Creature的成员函数KindOf:  



1。     在ClassView中右击类Creature,选择Add             Member  

Function,弹出如图所示的对话框。  



                                            



                    图2。9 添加成员函数  



2。  在Function Type处输入char  *。然后在对话框下方选择 

Virtual复选框,这导致Static复选框不可用,因为同一个成 

员函数不可能既是虚函数,又是静态函数,这时,在 

Function Declaration处自动添加上了virtual关键字。确认 

在Access处选择了Public,然后,在Function  Declaration 

处输入函数名KindOf,单击OK完成。  



双击ClassView中的KindOf,Microsoft Developer Studio将 

打开文件creature。cpp,将将插入点定位到函数KindOf的定 

义处。在此添加下面的代码:  



char* Creature::KindOf()  



{  



return 〃Creature〃;  



}  



下面以类似的方式生成类Animal,使其基类为Creature,继 

承方式为public。并将其头文件改为animal。h,实现文件改 

为animal。cpp。同样,在animal。cpp中删除  



#include 〃〃  



一行。  


…………………………………………………………Page 113……………………………………………………………

对于MFC应用程序,还可以使用ClassView来重载基类中的虚 

函数,这将在本书后面的章节中讲述。而对于非MFC应用程 

序,我们仍可以使用上面的添加成员函数的方法来重载基类 

中的虚函数,只不过这时必须手动的给出虚函数的返回类型 

和参数列表。  



使用上面的方法来生成为Animal的重载虚函数KindOf,其代 

码已在上一节中给出。  



然后再新添加一个C++ Source File——main。cpp,并在其中 

定义程序的主函数main()。  



由于我们 目前还没有接确到MFC编程,因此,现在还不能讲解 

ClassView的某此用法。在本书后面的章节中,我们将会在用 

到这些功能的时候讲解它们。  



2。5。2 使用WizardBar  



WizardBar是Microsoft Developer Studio中的一个工具条, 

如图2。10所示。它提供了对ClassView和ClassWizard   (关于 

ClassWizard的使用将在后面的章节中讲述)中的命令的快速 

访问。  



                              
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!