当前位置:首页 » 文件传输 » 派生类能直接访问基类的抽象成员
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

派生类能直接访问基类的抽象成员

发布时间: 2022-07-07 11:02:56

‘壹’ 私有继承的情况下,允许派生类直接访问的基类成员包括哪些新手求解答

继承方式不影响派生类对基类的访问权限,即使是private继承,派生类依然能访问基类的public和protected成员,但是private继承会使得派生类继承自基类的public和protected成员的属性变为private。继承方式的影响主要是对派生类的派生类有影响,不知我说清楚了没,你再自己思考一下,继承还是不简单的。

‘贰’ 派生类可以调用基类的私有成员吗

派生类不能对基类私有成员进行访问。

‘叁’ 派生类的成员函数可以直接访问基类的 成员,不能直接访问基类的 成员

protect
保护成员在派生类中会变成
私有成员,派生类的成员函数是可以访问的。
private
私有成员在派生类中是不可访问成员,必须通过基类的成员函数访问

‘肆’ 派生类对象对其基类中的什么成员是可访问的

A显然是错误的,私有成员是不能在派生类中访问的。
B,C当是私有继承时,基类中的所有成员都成为派生类的私有成员,在派生类的对象(是主函数中定义的)中是不可以去用它的私有成员的。
故答案是D

‘伍’ 公有继承派生类的函数可以直接访问基类的私有成员吗

如果是公有继承

子类可以访问基类的私有数据成员

但是要通过基类的成员函数

不能在子类里就直接访问基类的私有数据哦

如果要在子类直接访问

最好把基类的成员定义成保护的或公共的

~~~~~~~~~~~~~~~~~
全盘复制?!

我就觉得文字的东西

搅人得很啊

举个例子好了

class A
{
public:
put_out()
{
cout<<a;
}
protected:
int b;
private:
int c;
}

class B:public A
{
public:
void get()
{
put_out;//可以,是基类的public;
cout<<b;//可以,是基类的protected;
cout<<c;//不可以,是基类的private;
}
……

你看,基类的c变量在继承类B中被访问了吧,但是不能直接就去调用c,但可以通过A中的公用成员函数访问它呀

其实一句话,人家私有的东西你能随便就要吗?当染要饶点弯子咯呵呵~~~~~~~~~~~~~~~~ mIMICALl节省话费

‘陆’ c++中派生类如何访问基类成员变量

C++中派生类对基类成员的访问形式主要有以下两种:
1、内部访问:由派生类中新增成员对基类继承来的成员的访问。
2、对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问。

三种继承方式下,派生类对基类成员的访问规则。

1、私有继承的访问规则

‘柒’ 派生类的对象对它的基类成员中( )是可以访问的。

派生类的对象对它的基类成员中(A、公有集成的公有成员)是可以访问的。

只要是派生类,都可以丛基类中继承,除非把基类的构造函数定义为私有的,这样派生类无法构造。

在类的层次设计中,可以发现一些普遍的特性,即派生类总是同基类有“kind of”关系。另一个值得注意点是Book既是派生类,也是基类。



(7)派生类能直接访问基类的抽象成员扩展阅读:

每个派生类的说明是在基类的说明之后说明的,因此对于基类仅只给出一个前向引用的说明是不够的,必须是完全的说明。一个类可以作为很多特别类的基类。

在继承中,派生类含有基类的成员加上任何你新增的成员。结果派生类可以引用基类的成员(除非这些成员在派生类中重定义了)。当在派生类中重定义直接基类或间接基类的成员时,可以使用范围分辨符(::)引用这些成员。

‘捌’ C++中派生类如何实现对基类私有成员的访问

派生类不能对基类私有成员进行访问。
要在派生类中对基类成员进行访问,可以:
1,在派生类中对基类成员的public属性进行访问,以间接访问基类的私有成员;
2,在基类中将私有成员定义为protected访问属性,以在派生类中直接对其进行访问;

‘玖’ 派生类的对象可以对其基类中公有继承的保护成员直接访问吗为什么

这里你大概是弄混了一些概念。
保护成员跟私有成员,只能在类内部访问,别管是基类的保护成员或者自己的保护成员,都不能用对象访问。
既然不能用派生类的对象访问基类的保护成员,派生类可以做什么,它可以在类内访问基类的保护成员。

‘拾’ 在派生类中能否直接访问基类中的私有成员

不可以,派生类可以访问protected和public成员,private成员只有该类自身及友元类可以访问