- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象程序设计作业
郑州大学现代远程教育 《 面向对象程序设计》 课程考
核要求
说明:本课程考核形式为提交作业,完成后请保存为 WORD 2003 版本格
式的文档,登陆学习平台提交,并检查和确认提交成功(能够下载,并且内容无 误即为提交成功) 。
一. 作业要求
1. 请独立自主完成作业内容。
二. 作业内容
一) 、简答题: (每题 5 分,共 30 分)
1.什么是抽象类?它有什么特点?
答:
抽象类与接口紧密相关,它们不能示例化,并且常常部分实现或根本不实现。
特点:
1 、抽象类不能直接实例化
2 、允许 (但不要求 )抽象类包含抽象成员。
3 、抽象类不能被密封
2. C++中使用多态的前提条件是什么?
答:动态多态的前提条件:
1. 通过调用虚函数实现多态
2. 通过基类的指针或引用调用虚函数
3. 什么是类?类与结构有和不同?
答:类是引用类型在堆上分配,类的实例进行赋值只是复制了引用,
1 / 9
面向对象程序设计作业
都指向同一段实际对象分配的内存
不同:类有构造和析构函数,类可以继承和被继承
结构没有构造函数,但可以添加。结构没有析构函数,结构不可以继 承自另一个结构或被继承,但和类一样可以继承自接口。
4. 面向对象的特征有哪些?
答:封装,继承,多态
5. 简述 this 指针的含义是什么?
答: this 指针是一个隐含于每一个成员函数中的特殊指针。它是一 个指向正在被该成员函数操作的对象 , 也就是要操作该成员函数的对象。
6. 友元关系具有什么特点?
答: 友元函数的特点是能够访问类中的私有成员的非成员函数。 友元
函数从语法上看, 它与普通函数一样, 即在定义上和调用上与普通函
数一样。
二)、分析下面的代码,回答问题(每题 10 分,共 40 分)
1. 分析下面的代码,指出其中的错误,说明理由并改正 class C {
public:
int fn1( int x ) {
dm = x ;
}
private:
int dm;
};
void main ( ) {
C c;
c.fn1(16 );
cout c.dm ‘\n ’;
}
答: //dm 为私有变量,是不能通过对象直接访问的,正确的做法是 添 加 一 个 public 类 型 的 方 法 , 如 public void Show(){coutdmendl;} 然后利用对象 c 调用 Show(),
2 / 9
面向对象程序设计作业
2.下面代码的执行结果是什么?为什么?
class A{
int n;
public:
A() {};
A(int i){n=i;}
~A() { coutn=nendl;}
};
class B
{
A a;
int m;
public:
B(int i,int j):a(i){m=j;}
~B(){coutm=mendl;}
};
void main()
{
B b(1,2);
}
3 / 9
面向对象程序设计作业
答:执行结果:
n=1
m=2
原因: b 对象里包含一个 A 类的对象, b 对象在析构时先调用 A 的析
构函数,再调用 B 自身的析构函数
3. 下面代码的执行结果是什么?为什么? class Sample{
int n;
public:
Sample(){};
Sample(int i){n=i;};
Sample operator=(Sample);
void disp(){coutn=nendl;}
};
Sample Sample::operator=(Sample s)
{
Sample::n=s.n;
return *this;
}
void main()
{Sample s1(10),s2;
s2=s1;
s2.disp();
}
答:结果:
n=10
Sample 重载了赋值操作符,可以用 Sample 的一个对象去初使化
另一个对象, s2 对象被已经初使化的 s1 所初使化
4. 下面代码的执行结果是什么?为什么?
class A{
4 / 9
面向对象程序设计作业
public:
A(char *s) {coutsendl;}
~A(){};
};
class B:virtual public A
{
public:
B(char *s1,char*s2):A(s1)
{
couts2endl;
}
};
您可能关注的文档
最近下载
- 食品与餐饮连锁企业资本化指引参考III.pdf VIP
- 司来帕格片临床应用口服IP受体激动剂, 填补口服前列环素通路药物空白.pptx VIP
- LineGene 9600 Research 快速操作手册.pdf VIP
- 【静配用药配置中心】PIVAS方案设计与业务流程讲解(培训).pptx VIP
- 廖泉文-招聘与录用-第1章 概念的界定new.ppt VIP
- ODCC开放数据中心委员会:2025年AI存储系统需求研究.pdf
- 木结构桥梁制作教程精编版.ppt VIP
- 简历模板:最受欢迎的简历模板下载.doc VIP
- 应收账款催收实务及全面信用管理.ppt VIP
- 广东省湛江市2024年高考化学模拟试题(含答案)3.docx VIP
原创力文档


文档评论(0)