急求这几道c++题的答案,英文更佳
1.WhatdoesinheritancemeaninC++?SupposeyouhaveclassAandclassB,underwhichofthefollowing...
1.What does inheritance mean in C++? Suppose you have class A and class B, under which of the following two conditions class B should inherit from class A?
(1)A is a part of B.
(2)B is a kind of A.
2.When should the keyword virtual be placed before a member function of a class? Do all of the virtual member functions have to be overridden in the derived class? If not, why?
3.Does C++ support multiple inheritance? Some people think that multiple inheritance can cause a variety of ambiguity problems. Try to explain what problems will multiple inheritance cause and how to avoid them.
4.What operators cannot be overloaded in C++? What restriction applies to overloading the following operators?
=, ( ), [ ], and ->. 展开
(1)A is a part of B.
(2)B is a kind of A.
2.When should the keyword virtual be placed before a member function of a class? Do all of the virtual member functions have to be overridden in the derived class? If not, why?
3.Does C++ support multiple inheritance? Some people think that multiple inheritance can cause a variety of ambiguity problems. Try to explain what problems will multiple inheritance cause and how to avoid them.
4.What operators cannot be overloaded in C++? What restriction applies to overloading the following operators?
=, ( ), [ ], and ->. 展开
4个回答
展开全部
1.Inheritance allows one data type to acquire properties of other data types.
the 2nd condition (B is a kind of A)
2.(1)When a class is having serveral base classes and the call of member function is ambigious.
(2)No, there is no need to override when it is not needed.
3.Yes. When the inherited class is using a member function or member varible which exists in more than one base classes, the computer will not know which one to use. The problem can be simply solved by using the operator '::' or define a virtual inheritance.
4.“.” “::” “?:” and “sizeof” can not be overloaded.
the overloading of the operator mentioned can only be defined as a member function of a class
人格保证是纯手工打造~ 第二题可能还要再详细些...
the 2nd condition (B is a kind of A)
2.(1)When a class is having serveral base classes and the call of member function is ambigious.
(2)No, there is no need to override when it is not needed.
3.Yes. When the inherited class is using a member function or member varible which exists in more than one base classes, the computer will not know which one to use. The problem can be simply solved by using the operator '::' or define a virtual inheritance.
4.“.” “::” “?:” and “sizeof” can not be overloaded.
the overloading of the operator mentioned can only be defined as a member function of a class
人格保证是纯手工打造~ 第二题可能还要再详细些...
展开全部
1继承在c++中的意思是什么?假设你有A级和B级,在下列哪两种条件下,应继承来的B类A级吗?
通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。
选2啦
2当该关键字的虚拟被放置前的一个类的成员函数吗?是不是所有的虚成员函数必须被覆盖在派生类?如果不是,为什么?
3c++支持多重继承吗?有些人认为,多重继承可能导致各种各样的模棱两可的问题。解释多重继承原因以及如何避免它们。
3.1支持 3.2 继承的主要用途有二个,subtype和reuse。那subtype大家都了解就是is_a的关系,它也是最大范围的reuse。但reuse的目的不一定是subtype(我指的是通过继承的reuse。用过C++中private继承的会有体会)。它的目的纯属代码重用。比如两个类有些操作相同,但他们没有类型上的关系。如果你完全把他们分开,你就不得不实现两份同样的操作。如果你把这些相同的操作放在一个类里用继承来实现代码重用,你就只需要一份代码。所以通常继承分成两种,一种是类型继承(type inheritance)另一种是代码继承(implementation inheritance)。他们又叫语义继承(interface, semantic, or behavior inheritance)和语法继承(syntactic or code inheritance)。
二 四 不会
通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。
选2啦
2当该关键字的虚拟被放置前的一个类的成员函数吗?是不是所有的虚成员函数必须被覆盖在派生类?如果不是,为什么?
3c++支持多重继承吗?有些人认为,多重继承可能导致各种各样的模棱两可的问题。解释多重继承原因以及如何避免它们。
3.1支持 3.2 继承的主要用途有二个,subtype和reuse。那subtype大家都了解就是is_a的关系,它也是最大范围的reuse。但reuse的目的不一定是subtype(我指的是通过继承的reuse。用过C++中private继承的会有体会)。它的目的纯属代码重用。比如两个类有些操作相同,但他们没有类型上的关系。如果你完全把他们分开,你就不得不实现两份同样的操作。如果你把这些相同的操作放在一个类里用继承来实现代码重用,你就只需要一份代码。所以通常继承分成两种,一种是类型继承(type inheritance)另一种是代码继承(implementation inheritance)。他们又叫语义继承(interface, semantic, or behavior inheritance)和语法继承(syntactic or code inheritance)。
二 四 不会
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.answer:(2)
(1)A是B的一部分,是类的组合。
2.虚函数是为了实现类的多态性。如果基类有多个派生类,你在调用类中的函数时,虚函数可以实现根据运行时类型,选择对应派生类的函数的功能。虚函数不是必须要在派生类里实现的。如果有纯虚函数的话,派生类需要实现该虚函数才能进行实例化。
3.支持多重继承
会造成如下的问题1,类D继承自类B和C,类B和C继承自类A,这样类D中会出现两次类A。
A A
\ /
B C
\ /
D
可以使用虚继承来避免这个问题。
class A;
class B : public virtual A;
class C : public virtual A;
class D : public B,public C;
问题2在 Sylwester回答中已经说明。
4 C++中大部分的操作符是可以被重载的,例外的只有“.”、“::”、“?:”和“sizeof”。
(1)A是B的一部分,是类的组合。
2.虚函数是为了实现类的多态性。如果基类有多个派生类,你在调用类中的函数时,虚函数可以实现根据运行时类型,选择对应派生类的函数的功能。虚函数不是必须要在派生类里实现的。如果有纯虚函数的话,派生类需要实现该虚函数才能进行实例化。
3.支持多重继承
会造成如下的问题1,类D继承自类B和C,类B和C继承自类A,这样类D中会出现两次类A。
A A
\ /
B C
\ /
D
可以使用虚继承来避免这个问题。
class A;
class B : public virtual A;
class C : public virtual A;
class D : public B,public C;
问题2在 Sylwester回答中已经说明。
4 C++中大部分的操作符是可以被重载的,例外的只有“.”、“::”、“?:”和“sizeof”。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
3.支持,造成基类被多次继承 用虚继承解决.可以参考《深入探索C++对象模型》
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询