无敌vc++复习题.doc
文本预览下载声明
VC++复习题
1.什么是内联函数?它与宏有何异同?
在函数调用时,系统要进行现场处理工作,如果函数很简短,则在整个函数调用过程中,附加的现场处理所占的时间开销比重会很大。C++提供了一种将函数体直接嵌入函数调用处的函数,他能消除附加的现场处理的时间开销,这种函数叫做内联函数。
相同点:都是在遇到调用时要进行直接替代。
不同点:宏替换是在正式编译之前,不进行参数的传递。函数调用是发生在程序实际执行时,要进行实参与形参的传递。
2.何谓引用?它有什么功能?
引用就是为一个以声明的变量起一个别名。
功能:引用的最大用处是将其作为函数参数。采用引用的传递方式,只需在函数定义时使用引用作为形参,而在函数调用是直接使用一般变量作为实参。
3.什么是对象?什么是类?简述对象与类之间的关系?
对象是包含现实世界中事物特征的抽象实体,它反映了系统为之保存信息和与之交互的方法。
类是具体相同数据结构和相同操作功能的对象的集合。
对象是类的一个实例,对象和类的关系相当于程序设计语言中变量和变量类型的关系。
4.何谓构造函数?何谓析构函数?请说明它们分别有什么作用?
构造函数是一种特殊的成员函数,其特殊性体现在:他不需要用户程序调用,就能在创建对象时由系统自动调用。作用就是在对象被创建时利用初始值去构建对象,使得在声明对象时就能自动地完成对象的初始化。
析构函数也是一种特殊的成员函数,它是在对象的生存期即将结束时由系统自动调用的。其作用和构造函数相反,用来在对象被删除前做一些清理工作和数据保存工作。
5.什么是this指针?它有何作用?
This指针是一个特殊的隐藏在对象中的指针,每个处于生存期的对象都有一个this指针,用于指向对象本身。This指针总是作为一个隐含参数传递给类的每一个成员函数。
6.什么是多态性?多态性分为哪两种?请简述这两种多态性的区别?
多态性是面向对象程序设计方法的一个重要特征,他主要表现在函数调用是实现“一种接口,多种方法”
两种多态性:编译时多态和运行时多态性。
编译时多态性是指在函数名或运算符相同的情况下,编译器在编译阶段就能够根据函数参数类型的不同来确定要调用的函数,这种静态多态性是通过重载机制来实现。
运行时多态性是指在函数名和函数参数类型都相同的情况下,在程序运行时才确定要调用的函数,这种动态多态是通过虚函数机制来实现。
11.建立一个名为Student的类,该类有以下私有成员变量:学生姓名、学号、性别和年龄;还有两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数;编写一个主函数,声明一个学生对象,然后调用成员函数在屏幕输出学生信息。
#include iostream.h
#include string.h
class Student{
private:
char m_Name[20];
char m_ID[20];
char m_Sex[2];
int m_Age;
public:
Student(char *Name,char *ID,char * Sex,int Age)
{strcpy(m_Name,Name);
strcpy(m_ID,ID);
strcpy(m_Sex,Sex);
m_Age=Age;
};
void Display()
{ coutName:m_NameID:m_IDSex:m_SexAge:m_Ageendl;
};
};
void main()
{
Student st(Lin,220,M,12);
st.Display();
}
12.哪个?简述应用程序类的成员函数主要完成哪几个方面的工作。
全局的应用程序对象是指InitInstance()
在.cpp文件中定义的全局的CMysdiApp类对象theApp.
工作有:(1)注册应用程序。(2)创建并注册文档模板。(3)处理命令行参数。(4)通过调用ShowWindow ( ) 和 UpdateWindow ( ) 函数显示和刷新所创建的框架窗口。
13.编写一个SDI应用程序MyMessage,程序运行后在程序视图窗口左击或右击鼠标分别弹出不同提示信息的对话框,显示左击或右击鼠标的次数。
说明:
(1)用户界面自行设计;
(2)写出程序的设计步骤及添加的代码(指出在什么类的什么函数中添加什么代码并注意所用标识符前后保持一致)。
1.利用MFC AppWizard[exe]建立一个单文档应用程序MyMessage。
2.为视图类CMyMessageView添加两个private属性、int类型的成员变量m_nLeft和m_nRight。在项目工作区的ClassView类视图中右击CMyMessageView,在弹出式菜单中选择Add Memb
显示全部