- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
类和对象综合练习
一、单项选择题
1、对类的构造函数和析构函数描述正确的是( )o
A、 构造函数可以重载,
B、 构造函数不能重载,
C、 构造函数可以重载,
D、 构造函数不能重载, 析构函数不能重载 析构函数可以重载 析构函数也可以重载 析构函数也不能重载
2、类的析构函数的作用是( )o
A、一般成员函数 B、类的初始化 C、对象的初始化 D、删除对象
TOC \o 1-5 \h \z 3、假定MyClass为一个类,则该关的拷贝构造函数的声明语句为( )。
A、MyClass(MyClass x); B、MyClass(MyClass x);
C、MyClass(MyClass x); D、MyClass(MyClass *x);
4、假定MyClass为一个类,贝U执行MyClass a, b(2), *p;语句时,自动调用构造 函数( )次。
A、2 B、3 C、4 D、5
5、假定MyClass为一个类,则执行MyClass a[3], *p⑵;语句时,自动调用该类 构造函数( )次。
A、2 B、3 C、4 D、5
6、 类MyClass的定义如下:
class MyClass{
public:
MyCIass(){ value=O; }
SetVariable(int i){ value=i; }
private:
int value; };则对下列语句序列正确的描述是( )。 MyClass *p, my;
p 二my;
A、 语句p二my;是把对象my赋值给指针变量p
B、 语句MyClass *p, my;会调用两次类MyClass的构造函数
C、 对语句*p.SetVariable(5)的调用是正确的
D、 语句 p-SetVariable(5)与语句 my.SetVariable(5)是等价的
7、 类MyClass的定义如下:
class MyClassf
public:
MyClass(){ }
MyClass(int i){ value=new int(O); }
int *value; };若要对Value赋值,则下面语句正确的是( )。
A、MyClass my; my.value=10;
MyClass my; *my.value=10;
C、 MyClass my; my.*value=10
D、 MyClass my(10);
8、 对于拷贝构造函数,正确的描述是( )。
A、在C++语言屮如果不自定义类的拷贝构造函数,则每个类都有默认的拷贝构 造函数
B、 必须为毎个类定义拷贝构造函数
C、 如果要使用拷贝构造函数,则必须在类屮先定义
D、 当定义了类的构造函数吋,如果要使用拷贝构造函数,则必须定义拷贝构造 函数
9、 对下列语句正确的描述是( )。 const int *x; 〃①int const *x; 〃②
A、 语句①的含义是指针变量x不能更改
B、 语句②的含义是指针变量x所指向的值不能更改
C、 语句②的含义是指针变量x不能更改
D、 语句①和②是相同含义的不同定义方式
10、 关于new运算符的错误的描述是( )。
A、 使用运算符new创建对彖数组时必须定义初始值
B、 使用运算符new创建对彖时,会调用类的构造函数
C、 运算符new可以用来动态创建对象和对象数组
D、 使用new运算符创建的对象可以使用运算符delete删除
二、分析下列各程序的运行结果
1、 源程序如下:
class MyClass{
char ch;
public:
MyClass();
MyClass(char character);
void Print();
?MyClass(); };
MyClass::MyClass(){cout?HThis is a constructor!n?endl; ch—a: }
MyClass::MyClass(char character){cout?MThis is a constructor!M?endl; ch=character;}
Void MyClass::Print(){cout?HThc value of ch is u?ch?cndl; }
MyClass:MyClass(){cout?MThis is a destructor!H?endl; }
int main(){
MyClass first,second(,b,);
first.Print();
second.Print();
return 0; }
2、 源程序如下:
class ClassOne{
public:
ClassOnc();
ClassOne(int value);
void Print();
?ClassOne();
private: int i;
文档评论(0)