7.3 练习题解答
1.什么是继承性?为什么说它是面向对象程序中的重要机制?
答:继承是指一个对象是另一个对象的特例,则称这个对象继承了另一个对象。继承是创建新类的一种手段,通过继承生成的新类中包含了被继承类中的所有成员,并且它还具有自己定义的成员。
继承性是面向对象程序设计方法中两大标志之一,即封装性和继承性。继承性将提高可重用性,这是面向对象程序设计的重要特性。继承性又是多态性的重要基础。
2.C十十中继承分为哪两类?继承方式又分哪3种?
答:C十十语言支持两种继承:单继承和多继承。有的面向对象程序设计语言只支持单继承,例如Java语言。C十十语言中继承方式分为3种:公有继承(Public)、私有继承(private)和保护继承(protected)。
3.3种继承方式中各有什么特点?不同继承方式中派生类对基类成员的访问有何
不同?
答:继承方式有3种,它们区别在于不同继承方式使得基类成员在派生类中的访问权限不问。具体讲来,公有继承方式时,基类中的公有和保护成员在派生类中仍是公有和保护成员;私有继承方式时,基类中的公有成员和保护成员在派生类中都为私有成员;保护继承方式时,基类中的公有成员和保护成员在派生类中都是保护成员。3种方式中,基B类为A类的子类型,就称它们类型适应。这时,B类对象就是A类对象。可将B类对象直接赋值给A类对象。反之不行。另外,还可用B类对象初始化A类对象的引用,用B类对象的地址值赋给指向A类对象的指针。
9.多继承中,在哪些情况下会出现二义性?如何消除二义性?
答:多继承中在下列两种情况下可能出现二义性:
(1)访问不同基类中的相同成员可能出现二义性。
(2)访问共同基类中的成员时可能出现二义性。·
消除二义性的方法是适当地选择成员名限定的方法,这时要使用作用域运算符::。
10.为什么要引入虚基类?带有虚基类的派生类的构造函数有什么特点?
答:引入虚基类的目的是为了解公共基类可能造成的二义性。
带有虚基类的派生类的构造函数的成员初始值表中含有虚基类的构造函数,并对其虚基类的子对象只初始化一次。
7.4 作业题解答
一、选择填空
1.下列对派生类的描述中,( )是错的。
A.一个派生类可以作为另一个派生类的基类
B.派生类至少有一个基类
C.派生类的成员除了它自己的成员外,还包含了它的基类的成员
D.派生类中继承的基类成员的访问权限到派生类保持不变
答:D。
2.派生类的对象对它的基类中( )是可以访问的。
A.公有继承的公有成员
B.公有继承的私有成员
C.公有继承的保护成员
n私有继承的公有成员
答:A。
3.对基类和派生类的关系描述中,( ) )是错的。
A.派生类是基类的具体化
B.派生类是基类的子集
C.派生类是基类定义的延续
D.派生类是基类的组合
答:B。
4.派生类的构造函数的成员初始值表中,不能包含( )。
A.基类的构造函数
B.派生类中子对象的初始化
C.基类的子对象初始化
D.派生类中一般数据成员的初始化
答:C。
5.关于子类型的描述中,( )是错的。
A.子类型就是指派生类是基类的子类型
B.一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型
C.在公有继承下,派生类是基类的子类型
D.子类型关系是不可逆的
答:A。
6.关于多继承二义性的描述中,( )是错的。
A.一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性
B.解决二义性的最常用的方法是对成员名的限定法
C.基类和派生类中同时出现的同名函数,也存在二义性问题
D.一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性
答:C。
7.设置虚基类的目的是( )。
A.简化程序
B.消除二义性
C.提高运行效率
D.减少目标代码
答:B。
8.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化( )。
A.与虚基类下面的派生类个数有关
B.多次
C.二次
D.一次
答:D。
二、判断下列描述的正确性,对者划√,错者划×
√1.C++语言中,既允许单继承,又允许多继承。
×2.派生类是从基类派生出来,它不能再生成新的派生类。
×3.派生类的继承方式有两种:公有继承和私有继承。
×4.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。
. √5.在公有继承中,基类中只有公有成员对派生类对象是可见的。
×6.在私有继承中,基类中只有公有成员对派生类是可见的。
√7.在私有继承中,基类中所有成员对派生类的对象都是不可见的。
√8.在保护继承中,对于垂直访问同于公有继承,而对于水平访问同于私有继承。
√9.派生类是它的基类的组合。
×10.构造函数可以被继承。
√11.析构函数不能被继承。
√12.子类型是不可逆的。
×13.只要是类M继承了类N,就可以说类M是类N的子类型。
√14.如果A类型是B类型的子类型,则A类型必然适应于B类型。
√15.多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。
×16.单继承情况下,派生类中对基类成员的访问也会出现二义性。
√17.解决多继承情况下出现的二义性的方法之一是使用成员名限定法。
√18.虚基类是用来解决多继承中公共基类在派生类中只产生一个基类子对象的
问题。
三、回答下列问题
1.根据下面给定的含有虚基类的复杂继承结构,回答问题。
Class A
{
Public:
void f();
};
class B:virtual public A
{
Public:
void f();
};
class C:public B
{};
class D:Public C,virtaul pub1ic A
{
Public:
void g();
};
(1)画出上述结构的DAG图。
(2)设有D d;间:d.f()是否有二义性?
(3)设有
V oid D::g()
{
f();
}
问:g()函数中对f()调用是否有二义性?
解答:
(1)上述结构的DAG图如下所示。
A
{fg()}
B
{fg()}
C
{}
D
(2)无二义性。
(3)无二义性。
2.根据下面给定的继承结构,回答问题。
class A
{
public:
int a;
int b();
int f();
int f(int);
int g();
}
class B
{
public:
char f();
int g();
private:
int a:
int b();
};
class C:Public A,Public B
{
};
设有:
C *pc
(1)pc一>a=1;是否有二义性?
(2)pc一>b(),是否有二义性?
(3)pc一>f();是否有二义性?
(4)pc一>f(10);是否有二义性?
(5)pc一>g();是否有二义性?
提示:二义性检查是在访问控制权限或类型检查之前进行的。解答:
(1)无。
(2)无。
(3)有。
(4)无。
(5)有。
四、分析下列程序的输出结果
1.
#include<iostream.h>
class A
{public:
A(int i,int j){a=i;b=j;}
void Move(int x,int y){a十=x;b十=y;}
void Show()
{cout<<”(”<<a<<”、”<<b<<”=”<<endl;
}
private:
int a,b;
};
class B:private A
{
public:
B(int i,int j,int k,int l) :A(i,j){x=k;y=1;}
void Show()
{ cout<<x<<”,”<<y<<endl;
}
void fun() {Move(3,5);}
void f l(){A::Show();}
private:
int x,y;
};
void main()
{
A e(1,2);
e.Show();
B d(3,4,5,6);
d.fun();
d.Show();
d.f l();
}
运行该程序的输出结果如下所示。
(1,2)
5,6
(6,9)
void main()
{
A e(1,2);
e.Show();
}
void main()
{V v:
v.InitR(10,20,30,40);
v.fun();
cout<<”(”<<v.Getx()<<”,”<<v。GetY()<<”,”<<
v.GetW()<<”,”<<v.GetH()<<”=”<<endl;
}
运行该程序的输出结果如下所示。
(13,22,30,40)
分析:
该程序中有3个类:L,R和V。其中,R类公有继承L类
V类又公有继承R类。因此V类的对象可以调用I类和R类中的非私有成员。4.
#include<iostream。h>
class P
{
public:
P(int P1,int P2){pril=P1;Pri2=p2;}
int inc1(){return ++pril;}
int inc2(){return ++pri2;}
void display(){cout<<"pri1="< private: int pri1,pri2; }; class D1:private P { public: D1(int p1, int p2,int p3):p(p1,p2) { pri3=p3; } int inc1(){return p :: inc1();} int inc3(){return ++pri3;} void display(); {p::display(); } private int pri3; }; class D2:Public P { public: D2(int P1,int p2,int p4):P(P1,p2) { Pri4:=p4; } int incl() { P::inc l(); P::inc2(); return P::inc1(); } int inc4(){return++pri4} void display() { P::display(); cout<<“Pri4=”<<Pri4<<endl; prlvate: int pri4; }; class D12:prive D1,public D2 { public: d12(int p11, int p12, int p13,int p21,int p22,int p23,int p) :D1(p11,p12,p13),D2(p21,p22,p23) { pril2=p; } int inc1() { D2::inc1(); return D2::inc1(); } int inc5(){return ++pril2;} void display() { count<<"d2::display()\n"; D2::display(); } Prlvate: int pr512; } void main() { D12d(1,2,3,4,5,6,7); d.display(); cout<<cndl; d.incl(); d.inc4(); d.inc5(); d.D12::incl(); d.display(); } 运行该程序输出结果如下所示。 D2::disPlay() pril=4,pri2=5 Dri4:=6 pril2:=7 D2::display() pril=12,pri2=9 Dri4;=7 Dril2:=8 分析: 该程序中共有4个类:P类、D1类、D2类和D12类。其中,P类是Dl 共基类,D12类是Dl类和1)2类的派生类,这是一种多继承的例子。Dl 2 D12类的两个基类中,D1是私有继承,D2是公有继承。 5 #include class P { public: P(int P1,int P2) { P ril=P1;P ri2=P2;} int incl(){return ++pri1;} int inc2() {return ++pri2;} void display(){cout<<”pri1=”< private: int pri1,pri2; } class D1:virtual private P { public: D1(int p1,int p2,int p3):P(p1,p2) { pri3=P3; } int incl() {return P::inc1();} int inc3() (return ++pri3;) void display() { P::display(); cout<<”Pri3=”<<pri3<<endl; } private: int pr53; } class D2:virtual public P { public: D2(int P1,int p2,int p4):P(p1,p2) { pri4::P4; } int incl() P::incl(); { P::inc1() P::inc2(); return P::inc1(); } int inc4() ( return ++pri4; ) void disPlay() { P::display(); cout<<”pri4;”<<pri4<<cndl; } private: int pri4; class D12:private D1,public D2 { public: D12(int p11,int p12,int p13,int p21,int p22,int p23,int p) :D1(p11,P12,P13),D2(p21,p22,p23),P(p11,p21) { pril2:=P; } int incl() { D2::incl(); return D2::incl(); } int inc5() (return十十pril2;) void display() { cout<<”D2::disPlay()\n”; D2::display(); cout<<”pril2=”<<pril2<<endl; } private: int pfil2; } void main() {D12 d(1,2,3,4,5,6,7); d.display(); cout<<endl: d.incl(); d.inc4(); d.inc5(); d.D12::incl(); d.display(); } 运行该程序输出结果如下所示。 D2::disp1ay( ) pril=1, pri2=4 pri4=6 pril2=7 []2::display( ) pril=9,pri2=8 pri4=7 pri2=8 分析: 该程序与前一个程序的区别仅表现在以下两点。 (1)采用了虚基类,D1类和D2类的基类为虚基类。 (2)类D12的构造函数中,不仅包含了它的两个基类的构造函数,而且包含了虚基类P的构造函数。 由于采用了虚基类的机制,使得该程序的输出结果与上个程序不同,请读者自己 比较。 《思想道德修养与法律基础》案例分析题集 1、一位25岁网名名卡佳的北京女孩,在她的博客中,她这样表示愿为中国足球“献身”:“如果中国国青队在4月26日的中日国青比赛中能够胜出,我愿意与当场最佳球员度过浪漫一晚。” 你如何看待她这种行为? 2、“有关国人、外国人、汉奸与奸商”。2006年6月27日的《南方都市报》登载了发生在大连的一幕:一老外在地摊前买樱桃,摊主狮子大开口要35元一斤,路过的一对大学生情侣见老外语言不通上前当翻译,并帮助老外把价钱砍到15元一斤。老外离开后,摊主大骂那两个大学生:“一个中国人怎么帮着一个老外,汉奸!。”你如何看待这件事? 3、案例分析:2006年6月26日,世界第二大富翁,全世界公认的最成功的投资家沃伦·巴菲特宣布,将以每年分期付款的形式,将自己的370亿美元捐给比尔·盖茨的慈善基金会。这样,世界首富比尔·盖茨和世界第二大富翁就组成了超级慈善组合。在此之前不久,盖茨已宣布他将逐步退出微软的日常管理,全身心与妻子米兰达一起管理慈善事业。媒体言:“随着岁月流逝,有着主宰世界野心的无情商人比尔·盖茨,正慢慢向立志拯救劳苦大众的富有同情心的科学家比尔·盖茨妥协。 问题:价值的大小能否比较?如果可以的话,你认为比尔·盖茨和雷锋谁的价值大? 4、案例分析:今天,大家已经跨入了大学的门坎,你有没有清楚地想过,你来读大学是为了什么? 2002年,湖南株洲二中高级教师尹健庭在课堂上向自己的学生宣扬“读书就是为了将来赚大钱、当大官、娶美女”,结果被校方开除。这和那句俗语“书中自有黄金屋,书中自有颜如玉”是一样的意思,大家今天来读大学是不是也是为了这些?仅仅为了这些? 5案例分析:有个年轻人曾经这样谈到:我的邻居为了手提箱里的1000元公款,和徒搏斗牺牲了,可我不佩服她。我不明白,那1000元真的比生命还珍贵?你的看法呢? 6、案例分析:有个民工到城里来,很久找不到工作,他几乎快要饿死了,你认为他此时是该去偷一些食物来保全生命呢,还是为了守住不偷的原则宁愿饿死呢? 7、案例分析:人活着到底为了什么? 2006年9月1日,珠海平沙一中初三女生刘某某开学首日,在家中自缢身亡,年仅15岁。为什么在花样年华选择这样的不归路?后父母在整理她的遗物时发现了刘某某同学在自杀前分别写给父母、老师、同学的遗书,遗书的部分内容说明了她自杀的原因:“我根本不知道活着是为了什么。” 大一思修模拟案例分析题 一、案例分析:中学生赵某,15周岁,身高175公分,但面貌成熟,像二十五、六岁。某日,赵某偷拿家里的1万元买了一辆摩托车。试分析: (1)该摩托车买卖合同的效力状况如何? (2)赵某父亲发现此事后,起诉到法院要求商店将1万元退给 自己,同时自己将摩托车退还商店。赵某父亲的诉讼请求是否应当 得到法院的支持 答:题目很清楚,赵某是限制民事行为能力人,其购买摩托车 的合同是效力待定的合同。其父作为法定代理人,拒绝追认的,合 同无效,双方各自返还取得的财产。其父的要求法院会支持的另:合同无效、我国合同法规定未成年人签订与其年龄不相当 的合同要有其法定代表人(即监护人)的追认才能有效力、否则效 力待定。因此父亲的申诉应当得到法院的支持 另 1.该摩托车的买卖合同属于效力待定的合同。 2.赵某的诉讼请求应当得到法院的支持。 二、案例分析:2005年12月,王某、吴某两人合资开办了一家外贸服务公司,向工商局办理了注册登记。其中王某出资6万元;吴某向朋友李某借款4万元,作为自己的出资。2008年10月,受全球金融风暴的影响,公司资产损失殆尽,只剩下1万元现金,而负债却高达6万元,其中公司向个体户赵某借款4万元,向电脑公司购买电脑欠货款2万 元。 公司破产后,李某、赵某和电脑公司都找到王某、吴某两人,要求他们清偿欠款。王某、吴某提出,其所开办的是有限责任公司,只能以帐面所剩的1万元自己,在三者之间按2:2:1的比例清偿。李某等不同意,遂向法院起诉。 问题:如果你是本案法官,你认为本案应当如何处理? 答: 1、吴某和李某直接的借款合同是独立的,跟公司没有任何关系,因此吴某必须偿还李某4万元; 2、赵某和电脑公司属于公司的债权人,他们可以向公司请求得到清偿。赵某和电脑公司按照2:1从1万元公司账面余额里得到清偿。 另:王某,吴某,和其外贸公司承担连带责任。首先王某,吴某在公司资不抵债的情况下仍然借款,发现还是无法继续生产,当股东发现此情况进行破产清算更有利于债权人和债务人,可是他们仍然继续借款进行。因此,我是法官我要求他们继续连带偿还剩下的债务。 三、案例分析:养花专业户李某为防止有人偷花,在花房周围私拉电网。一日晚,白某偷花不慎触电,经医院抢救无效,不治身亡。(1)李某对这种结果的主观心理态度是什么样的? (2)假设李某布设好电网后深怕造成意外伤亡,遂在电网四周树立了几个木牌,上面写着“有电!请勿靠近!”白某前来偷花过程中随看到木牌,但以为是李某虚张声势,任然强行进入,后触电身亡,李某对白某的死亡的主观心理态度是什么样的? 答:(1)主观心理态度是放任的态度。、间接故意,明知可能赵成他 1.定义一个哺乳动物类Mammal,并从中派生出一个狗类Dog,下面给出Mammal类的定义,要求: (1)添加Dog类的颜色数据成员,访问属性为私有,通过SetColor和GetColor成员函数来对颜色进行设置和获取。 (2)分别为基类和派生类添加相应的构造函数(有参、无参)和析构函数,并进行测试。 class Mammal { protected: int itsAge; int itsWeight; public: int GetAge(){return itsAge;} void SetAge(int age) {itsAge=age;} int GetWeight() { return itsWeight;} void SetWeight(int weight) {itsWeight= weight;} }; class Dog : public Mammal { //定义Dog类的数据成员和成员函数 }; 改: #include JavaScript的继承机制 JavaScript是面向Web的编程语言,其高端、动态和面向对象的编程风格,使得JavaScript 已经从一门简单的脚本语言进化成为一门强大的编程语言。在面向对象(OOP)的程序设计范型中通常强调类的概念,早期的JavaScript中并没有类的概念,JavaScript采用基于原型的继承风格,虽然使用起来非常灵活、高效,但要正确理解和使用原型对象及其继承机制是非常困难的,本文对比类的继承机制,并通过实例深入的讨论了JavaScript特有的原型链继承、构造函数继承、组合继承、寄生组合继承、class extend等多种继承机制。 基于类的继承 继承是面向对象程序中最重要的概念之一。继承允许我们根据一个类来定义另一个类,当创建一个类时,不需要完全重新编写新的数据成员和数据函数,只需要设计一个新的类,继承了已有的类的成员即可。这个已有的类被称为基类(父类),新的类被称为派生类(子类)。实现继承的好处: (1)提高代码重用性高。如果我们新创建的类与已有的类有绝大部分相类似,则没有必要再重新定义这个完整的类。这样做可以实现代码的重用,大大减少了软件开发的成本。 (2)继承可以实现面向对象的“多态”特性。程序员可以将子类的对象直接赋值给父类的引用,无须再编写显式的类型。 基于原型的继承 JavaScript中,只要创建一个新函数,就会根据一组特定规则为该函数创建一个prototype属性,而这个属性指向函数的原型对象。在默认情况下,原型对象会自动获得一个constructor 属性,而这个属性包含一个指向prototype属性所在函数对象的指针,如图所示。当一个函数对象被创建时,function构造器产生的函数对象会运行代码“:this.prototype={constructor:this};”。实例没有prototype属性,但是有__proto__属性。函数同时有prototype和__proto__属性。__proto__属性虽然在ECMAScript6语言规范中标准化,但是不推荐被使用。 原型链 当访问一个对象的属性时,先在对象的本身找,如果找不到就去对象的原型上找,如果还是找不到,就去对象的原型(原型也是对象,也有它自己的原型)的原型上找,如此继续,直到找到 实验目的与要求: 1.掌握类的继承与派生关系以及实验方法,理解类的层次结构。 2.掌握派生类构造函数初始化基类成员和对象成员的方法。 3.掌握内联函数和默认函数。 4.掌握赋值兼容原则,掌握派生类的复制构造函数和赋值运算符的定义。 实验过程及内容: 1.实践教程实验二十二P81范例:定义一个继承与派生关系的类体系,在 派生类中访问基类成员。 ①先定义一个点类,包含x,y坐标数据成员,显示函数和计算面积的函数成员; ②以点为基类派生一个圆类,增加表示半径的数据成员,重载显示和计算面积的函数; ③定义一个线段类,以两个点类对象作数据成员,定义显示、求面积及长度函数,线段类采用聚合方式,因为有两个端点,不能用派生。 编程测试所定义的类体系。 本实验教程中有源码,请自行运行,体会和熟悉继承与派生的基本概念及实现方法,掌握派生类构造函数初始化基类成员和对象成员的方法等。2. 实践教程P83编程:多层派生练习,由上题Point类和Circle类继续派生出Cylinder类。要求计算圆柱的底面积、侧面积、全面积和体积。 请编写所有完整的成员函数,并编写主函数进行验证。 数据处理 1. (1) (2)j结果报错,原因是派生类中的成员函数不能访问基类中的私有成员。(3)在Line类中添加两个数据成员。 2. #include 1. 甲男与乙女是一对恋人。一日,乙在电话中提出要和甲分手,甲说希望我们能见最后一面,道个别,乙同意了。甲来到乙的寓所,对乙说,“希望你不要和我分手,不然我就喝下这瓶毒药!”说着拿出一瓶液体状东西。乙认为甲是吓唬自己的,于是说,“你爱喝就喝,关我什么事。”甲一口喝光液体,满脸痛苦倒在床上。乙认为甲是假装的,掉头摔门而去。甲中毒身亡。 问:如何看待乙的行为? 答:乙的行为并不违反法律,但其行为应受到道德的谴责。从犯罪主观方面看,乙没有任何伤害或杀死甲的故意和过失;从犯罪客观方面来看,甲的死亡后果是因为自己喝毒药,而这毒药并不是乙给他喝的,乙的行为对甲的死亡不构成因果关系。另外,男女朋友间没有救助的法定义务,救助甲是乙道德上的义务;对甲的死亡乙也不能预见,因为她认为甲是吓唬自己,不是真的自杀,因此,也无救助的可能性,由此也不构成不作为犯罪。但是乙作为甲的女友没有留心注意甲的行为应受到道德的谴责。 2. 余某与刘某结婚后生有两个儿子余甲、余乙。后余某与刘某因感情破裂离婚,两个儿子归刘某抚养,余某每月支付生活费若干。数年后,刘某与林某结婚,当时余甲已工作,余乙随刘某改嫁。刘某与林某又生一子林丙。余某离婚后未再婚,并于1999年去世,留下遗产4万元。2000年1月林某去世,留有家中财物共值12万元。 问:余某与林某的遗产该如何分割?请说明理由。 答:余某死亡时与刘某已不存在夫妻关系,因此余某的4万元由其子女即余甲、余乙,一人2万。林某死后,首先分割夫妻共同财产,刘某可得一半遗产6万;剩余6万由刘某、余乙、林丙平分,各分2万。原因《继承法》第10条:遗产按照下列顺序继承:第一顺序:配偶、子女、父母;第二顺序:兄弟姐妹、祖父母、外祖父母。本法所说的子女,包括婚生子女、非婚生子女、养子女和有抚养关系的继子女。 3. 宋某“文革”期间被打成反革命,含冤入狱,妻子也离开了人世。1980年平反出狱。宋某有两个儿子宋甲和宋乙。宋甲在外地工作。宋某平反后随宋乙及儿媳妇黄某及孙子宋小乙共同生活。同时,因狱友姚某夫妇双双去世,宋某收养了他们的女儿姚小甲。1990年,宋乙因病去世。宋某随之瘫痪在床,一直由黄某尽心照顾。1994年宋某去世,留有遗产10万元和一份遗嘱.遗嘱写明给宋某的亲妹妹宋丁2万元,但宋丁于1993年去世。宋甲认为自己是唯一的继承人,遂将10万元全部取走。宋某的亲弟弟宋丙认为宋某当时在狱中,已故双亲全由自己养老送终,宋某的遗产应分一份给他,便起诉至法院。宋丁的儿子王小甲也要求得到给其母亲的2万元。 问:遗产该如何分配?说明理由。 答:宋某的妹妹宋丁比宋某去世的早,所以不发生遗嘱继承,而遗嘱继承是不能代位继承的,所以宋丁的儿子王小甲也没有权利继承宋某的财产。宋某的弟弟宋丙是第二继承顺序,当第一继承顺序的继承人仍然健在并没有放弃继承权的情况下,作为第二顺序的宋丙也没有继承权。因宋乙去世的比宋某早,所以宋乙的儿子宋小乙享有代位继承权,作为丧偶儿媳的黄某,对公公宋某尽了主要赡养义务,有继承权。宋甲是宋某的亲生儿子,享有继承权。姚小甲是宋某收养的养女,同样享有继承权。因此,宋某的遗产由宋甲、姚小甲、黄某、宋 思想道德修养与法律基础课程 第1套 1、大学生尽快适应大学生活就要:认识大学生活特点,提高独立生活能力,树立新的(),培养优良学风。 a、学习理念 b、学习方法 c、学习目标 d、学习习惯 参考答案:A 2.当代大学生个人全面发展的成才目标及其内涵为:(),智就是人才素质基础,体就是人才素质的条件,美就是人才素质的重要内容。 a、德就是人才素质的基础 b、德就是人才素质的灵魂 c、德才兼备全面发展 d、又红又专博学多才 参考答案:B 3.在一定意义上讲,理想就是人们在实践中形成的、有可能实现的、对未来社会与自身发展的向往与追求,就是人们的世界观、人生观与价值观在奋斗目标上的集中()。 a、出现 b、实现 c、体现 d、再现 参考答案:C 4.之所以要坚持马克思主义科学信仰,就是因为:马克思主义就是科学的又就是崇高的,马克思主义具有持久的生命力,马克思主义以()。 a、共产主义为目标 b、人的解放为目标 c、推翻资本主义为目的 d、改造世界为己任 参考答案:D 5.中华民族的爱国主义优良传统就是:热爱祖国,矢志不渝;天下兴旺,匹夫有责;维护(),反对分裂;同仇敌忾,抗御外侮。 a、与平 b、团结 c、统一 d、发展 参考答案:C 6.爱国主义不就是狭隘的民族主义,也不就是大国()。要正确处理热爱祖国与关爱世界、为祖国服务与尽国际义务、维护世界与平与促进共同发展的关系。 a、帝国主义 b、霸权主义 c、殖民主义 d、沙文主义 参考答案:D 7.人生观主要通过人生目的、人生态度、人生价值三个方面体现出来。人生目的,回答();人生态度,表明人应当怎样对待生活;人生价值,判别什么样的人生才有意义。 a、人为什么活着 b、人就是什么 c、人的本质 d、人生信仰 参考答案:A 8.每个人在人生实践中,都会遇到义利、荣辱、善恶、苦乐、得失、成败、祸福、生死等()。 a、人生困惑 b、人生课题 c、人生矛盾 d、人生问题 参考答案:C 9.保持心理健康的途径与方法就是:树立正确的世界观、()与价值观;掌握应对心理问题的科学方法;合理调控情绪;积极参加集体活动,增进人际交往。 a、健康观念 b、生活目标 c、人生观 d、道德观 参考答案:C 10.道德的功能集中表现为,它就是处理()、个人与社会之间关系的行为规范及实现自我完善的一种重要精神力量,主要的功能就是认识功能与调节功能。 a、个人与她人 b、个人与集体 c、个人与国家 d、个人与个人 参考答案:A 11.公民基本道德规范的内容:爱国守法、明礼()、团结友善、勤俭自强、敬业奉献。 a、诚恳 b、诚信 c、诚挚 d、诚实 参考答案:B 继承与多态习题 一.基本概念与基础知识自测题 8.1填空题 8.1.1 如果类α继承了类β,则类α称为(1)类,而类β称为(2)类。(3)类 的对象可作为(4)类的对象处理,反过来不行,因为(5)。如果强制转换则要注意(6)。 答案:(1)基类 (2)派生类 (3)派生类 (4)基类 (5)派生类有一些新成员 (6)只能派生类强制转换为基类 8.1.2 当用public继承从基类派生一个类时,基类的public成员成为派生类的(1)成员, protected成员成为派生类的(2)成员,对private成员是(3)。公有派生可以使其类的(4),所以公有派生是主流。 答案:(1)public成员 (2)protected成员 (3)不可访问 (4)接口不变 8.1.3 利用继承能够实现(1)。这种实现缩短了程序开发的时间,VC++中的(2)很 好地体现了这一点。 答案:(1)代码的复用 (2)MFC编程 8.1.4 一个派生类只有一个直接基类的情况称为(1),而有多个直接基类的情况称为 (2)。继承体现了类的(3)概念,这在MFC中得到了很好表现,MFC中只采用了(4)。 答案:(1)单继承 (2)多重继承 (3)层次 (4)单继承 8.1.5 C++中多态性包括两种多态性:(1)和(2)。前者是通过(3)实现的, 而后者是通过(4)和(5)来实现的。 答案:(1)编译时的 (2)运行时的 (3)函数和运算符的重载 (4)类继承关系 (5)虚函数 8.1.6 在基类中将一个成员函数说明成虚函数后,在其派生类中只要(1)、(2)和 (3)完全一样就认为是虚函数,而不必再加关键字(4)。如有任何不同,则认为是(5)而不是虚函数。除了非成员函数不能作为虚函数外,(6)、(7)和(8)也不能作为虚函数。 答案:(1)同虚函数名 (2)同参数表 (3)同返回类型。如基类中返回基类指针,而派生类中返回派生类指针是允许的 (4)virtual (5)重载 (6)静态成员函数 (7)内联函数 (8)构造函数 8.1.7 纯虚函数定义时在函数参数表后加(1),它表明程序员对函数(2),其本质 是将指向函数体的指针定为(3)。 答案:(1)=0 (2)不定义 (3)NULL 8.2简答题 8.2.1构造函数和析构函数可以继承吗?派生类构造函数各部分的执行次序是怎样的?答:构造函数和析构函数不可以继承。派生类构造函数各部分的执行次序是: 1.调用基类构造函数,按它们在派生类声明的先后顺序,依次调用。 2.调用新增成员对象的构造函数,按它们在类定义中声明的先后顺序,依次调用。 3.派生类的构造函数体中的操作。 8.2.2什么叫派生类的同名覆盖(override)? 答:如果派生类声明了一个和某个基类成员同名的新成员(当然如是成员函数,参数表也必须一样,否则是重载),派生类中的新成员就屏蔽了基类同名成员,类似函数中的局部变量屏蔽全局变量。称为同名覆盖(override)。 8.2.3派生类的析构函数中需完成什么任务?是否要编写对基数和成员对象的析构函数的 调用?为什么? 答:析构函数的功能是作善后工作,析构函数无返回类型也没有参数,情况比较简单。派生类析构函数定义格式与非派生类无任何差异,不要编写对基数和成员对象的析构函数的调用,只要在函数体内把派生类新增一般成员处理好就可以了,因为对新增的成员对象和基类的善后工作,系统会自己调用成员对象和基类的析构函数来完成。 8.2.4为什么要使用虚基类?怎样定义虚基类?用一个实例来解释虚基类在其派生类中的 存储方式。 答:在多重继承是有可能出现同一基类的两个拷贝,为避免这种情况,可使用虚基类。虚基类(virtual base class)定义方式如下: class派生类名:virtual 访问限定符基类类名{...}; class派生类名:访问限定符virtual基类类名{...}; virtual 关键字只对紧随其后的基类名起作用。 案例分析题 2男子开玩笑将女子推入江中致死自信能将准女友推出江岸后拉得回来,杨银林双手抓住准女友的双肩朝江面做了个一推一拉的动作,没想“玩笑开大了”,她被推进长江溺水死亡。杨银林、小帆(化名)等4人在南岸区南滨路烟雨公园的江边石梯处玩耍。因7月下旬暴雨连连,所以当天江面洪水滔滔,杨感到危险,就喊小帆上岸。小帆说“我不上去,你来推我嘛”。杨为了吓唬小帆,就双手抓住小帆双肩,朝长江方向一推,然后往回一拉。哪知小帆当即仰面坠入江中。随后,杨跳入江中,但没有救起小帆。3天后,小帆的尸体才被打捞上来。 分析:杨银林过于自信,导致悲剧发生,应当以过失致人死亡罪追究刑事责任。 未按合同约定规还来自银行的国家助学贷款由于未按合同约定规还来自银行的国家助学贷款,中国石油大学北京校区的23名本科生被中国建设银行北京昌平支行告上法庭。银行要求解除双方借款合同,并要求学生归还所借款项的本金和利息。2005年12月28日,北京市昌平法院正式受理此案。结合实际,利用你所学过的原理进行分析。 答案:(一)分析得出是:关于大学生与诚信道德的问题,结合大学生活中,找工作简历造假,助学贷款不按期偿还,评优、保研和入党中的不诚信的现实。(二)大学生要养成诚信道德(1)诚信是大学生树立理想信念的基础。(2)诚信是大学生全面发展的前提。(3)诚信是大学生进入社会的“通行证”。 3刘甲与刘乙系同村邻居。2008年4月20日,两人为了宅基地的问题发生争执,刘甲首先出手打了刘乙胸部一拳,刘乙随之还击,猛击刘甲的脸部,致刘甲鼻梁骨折、右眼部红肿并伴有少量出血,经医院治疗花去医疗费3000余元。刘甲要求刘乙赔偿医疗费及误工损失共计人民币4000元,刘乙以刘甲首先出手打他为由拒绝赔偿。2008年8月20日,经乡司法助理员调解,刘甲与刘乙达成赔偿协议,由刘乙赔偿医疗费及误工损失共计人民币3500元,于同年8月底一次性付清。事后,刘乙未按照协议支付赔偿款,刘甲多次催讨未果,于2009年6月15日再次找乡司法助理员要求解决。在乡司法助理员表示无能为力后,刘甲就决定向法院起诉。可是乡司法助理员说:“你现在才想到去法院起诉,已经超过诉讼时效,法院是不会受理的。”请你根据法律规定分析乡司法助理员的话是否正确。 答案要点:不对。《民法通则》规定民事诉讼时效分两种:一般诉讼时效为2年;短期诉讼时效期间为1年。因身体受到伤害要求赔偿的,其诉讼时效适用短期诉讼时效。据此,该案似应过了诉讼时效。但是,该案已不属因身体伤害要求赔偿案,而是属于债权案。因为调解,刘乙已经答应赔款。因此,该案应适用一般诉讼时效。 4.甲某明知乙某出售的香烟是假烟,但因价格便宜,遂购买了两条。因双方完全出于自愿,所以甲乙之间的交易行为是民事法律行为。答案:错。因为我国民法规定:民事法律行为是公民或者法人设立、变更、终止民事权利和民事义务的合法行为。民事法律行为应当具备下列条件:行为人具有相应的民事行为能力;意思表示真实;不违反法律或社会公共利益。甲乙双方明知是假烟而进行交易,是违法的行为。5.王某因有外遇,欲谋杀妻子李某,将买来的毒药藏在房间内的隐蔽处,伺机投毒杀人,不料李某在打扫房间时发现了毒药并将其销毁。王某的行为属于犯罪未遂。答案:错。因为刑法规定:犯罪未遂是指已着手实行犯罪,由于犯罪分子意志以外的原因而未得逞的。即:犯罪未遂必须是在行为人着手之后才能成立。在着手之前,只能是犯罪预备或犯罪中止。王某行为只是在犯罪预备阶段的准备工具,由于意志以外的原因而停止下来,应属于犯罪预备。 1、2004年3月15日,云南大学生化学院生物技术专业2000级学生马加爵在海南三亚被逮捕。临刑前,《中国青年报》记者对马加爵进行了专访。记者问:“事情的发生,改变了你的这些想法?”(指他对“成功”的理解——引者注)马加爵回答:“肯定改变了,是失败了。我觉得没有理想是最大的失败。这几年没有什么追求,就很失败。” 结合以上案例,请分析:(1)、理想和信念在人一生中的作用是什么?(2)、通过该案例能获得何种启示。 2、联系个人实际,谈谈为什么勇于实践、艰苦奋斗是实现理想的根本途径。 1、(1)、从以下三个方面展开分析:理想信念在人生中的作用:指引人生的奋斗目标;提供人生前进的动力;提高人生的精神境界。(2)、能联系实际谈启示。 2、联系个人实际结合教材P32—33展开分析即可。 2. 甲男与乙女是一对恋人。一日,乙在电话中提出要和甲分手,甲说希望我们能见最 后一面,道个别,乙同意了。甲来到乙的寓所,对乙说,“希望你不要和我分手,不然我就喝下这瓶毒药!”说着拿出一瓶液体状东西。乙认为甲是吓唬自己的,于是说,“你爱喝就喝,关我什么事。”甲一口喝光液体,满脸痛苦倒在床上。乙认为甲是假装的,掉头摔门而去。甲中毒身亡。问:如何看待乙的行为? 答:乙的行为并不违反法律,但其行为应受到道德的谴责。从犯罪主观方面看,乙没有任何伤害或杀死甲的故意和过失;从犯罪客观方面来看,甲的死亡后果是因为自己喝毒药,而这毒药并不是乙给他喝的,乙的行为对甲的死亡不构成因果关系。另外,男女朋友间没有救助的法定义务,救助甲是乙道德上的义务;对甲的死亡乙也不能预见,因为她认为甲是吓唬自己,不是真的自杀,因此,也无救助的可能性,由此也不构成不作为犯罪。但是乙作为甲的女友没有留心注意甲的行为应受到道德的谴责。 3. 余某与刘某结婚后生有两个儿子余甲、余乙。后余某与刘某因感情破裂离婚,两个 儿子归刘某抚养,余某每月支付生活费若干。数年后,刘某与林某结婚,当时余甲已工作,余乙随刘某改嫁。刘某与林某又生一子林丙。余某离婚后未再婚,并于1999年去世,留下遗产4万元。2000年1月林某去世,留有家中财物共值12万元。问:余某与林某的遗产该如何分割?请说明理由。 答:余某死亡时与刘某已不存在夫妻关系,因此余某的4万元由其子女即余甲、余乙,一人2万。林某死后,首先分割夫妻共同财产,刘某可得一半遗产6万;剩余6万由刘某、余乙、林丙平分,各分2万。原因《继承法》第10条:遗产按照下列顺序继承:第一顺序:配偶、子女、父母;第二顺序:兄弟姐妹、祖父母、外祖父母。本法所说的子女,包括婚生子女、非婚生子女、养子女和有抚养关系的继子女。 4. 宋某“文革”期间被打成反革命,含冤入狱,妻子也离开了人世。1980年平反出狱。宋某有两个儿子宋甲和宋乙。宋甲在外地工作。宋某平反后随宋乙及儿媳妇黄某及孙子宋小乙共同生活。同时,因狱友姚某夫妇双双去世,宋某收养了他们的女儿姚小甲。1990年,宋乙因病去世。宋某随之瘫痪在床,一直由黄某尽心照顾。1994年宋某去世,留有遗产10万元和一份遗嘱.遗嘱写明给宋某的亲妹妹宋丁2万元,但宋丁于1993年去世。宋甲认为自己是唯一的继承人,遂将10万元全部取走。宋某的亲弟弟宋丙认为宋某当时在狱中,已故双亲全由自己养老送终,宋某的遗产应分一份给他,便起诉至法院。宋丁的儿子王小甲也要求得到给其母亲的2万元。问:遗产该如何分配?说明理由。答:宋某的妹妹宋丁比宋某去世的早,所以不发生遗嘱继承,而遗嘱继承是不能代位继承的,所以宋丁的儿子王小甲也没有权利继承宋某的财产。宋某的弟弟宋丙是第二继承顺序,当第一继承顺序的继承人仍然健在并没有放弃继承权的情况下,作为第二顺序的宋丙也没有继承权。因宋乙去世的比宋某早,所以宋乙的儿子宋小乙享有代位继承权,作为丧偶儿媳的黄某,对公公宋某尽了主要赡养义务,有继承权。宋甲是宋某的亲生儿子,享有继承权。姚小甲是宋某收养的养女,同样享有继承权。因此,宋某的遗产由宋甲、姚小甲、黄某、宋小乙4人均分,每人2.5万元。 5. 被告人林某,32岁,某煤矿局汽车司机。1995年3月2日下午2时许,林某驾驶解放牌货车返回单位的路上,行至某村庄附近弯道处,迎面高速驶来一辆卡车。由于路面又滑又窄,眼看就要相撞,林某急向右打方向盘,车下公鹿撞倒一茅棚,而后又撞在供销社的墙上。尽管林某采取了紧急刹车,但是还是造成了供销社一面墙的一部分倒塌并砸坏一些商品,汽车也遭到严重损失,总计损失价值1万元,林某本人也负伤。分析林某的行为性质。 答:林某的行为属于紧急避险。我国《刑法》规定:“为了使国家、公共利益、本人或他人的人身、财产和其他权利免受正在发生的危险,不得已而采取的紧急避险行为,造成损害的,不负刑事责任。”林某为了使自己和卡车司机的人身权和自己的货车和对方的卡车免受正在发生的危险,不得已急向右打方向盘造成损害,属于紧急避险,不负刑事责任。另外,我国《民法通则》规定:“因紧急避险造成损害的,由引起险情发生的人承担民事责任。因紧急避险采取措施不当或着超出必要的限度,造成不应有的损失的,紧急避险人应当承担相应的民事责任。”案例中卡车从又滑又窄的乡村弯道附近高速驶来,引起险情的显然不是林某;而林某采取的措施引起的损害小于两车相撞引起的损害,因此未超出必要的限度,因此他也无须承担相应的民事责任。 6. 某女青年袁某,婚后常遭到丈夫的打骂和婆婆的责怪。袁某认为,夫妻感情不好,完全是婆婆造成的,于是产生了毒死婆婆的念头。有一天,丈夫去外地干活,袁某趁作饭之机,把毒药放入锅中。由于投度量小,婆婆和小姑子吃饭后只略感不适,并无他恙。第二天,袁某又加大了药量投入锅中,结果,婆婆和小姑子均中毒,呕吐不止。袁某见状于心不忍,就跑去找医生抢救,婆婆和小姑子均脱险了。分析袁某故意犯罪的发展阶段。《思想道德修养与法律基础》案例分析题集[1]
大一思修模拟案例分析题
c++实验8 继承与派生上机练习题
JavaScript继承机制
继承和派生实验报告
思修案例分析例题【大一】
思想道德修养与法律基础 网上作业及参考答案
继承与多态习题
思修案例分析与论述