今天鞋百科给各位分享受保护成员的作用有哪些的知识,其中也会对C++中,比较类的三种继承方式:共有继承、受保护继承、私有继承之间的区别。进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在我们开始吧!

C++中,比较类的三种继承方式:共有继承、受保护继承、私有继承之间的区别。

在三种不同方式的继承下,派生类对原来基类中的成员访问的方式也不一样,具体如下:
1>公有继承中:
(1)基类的共有成员就相当于是派生类的公有成员,也就是说派生类可以像访问自身公有成员一样访问从基类继承的公有成员。
(2)基类的保护成员就相当于是派生类的保护成员,即,派生类可以像访问自身的保护成员一样,访问基类的保护成员。
(3)对于基类的私有成员,派生类内部成员是无法直接访问的,派生类使用者也无法通过派生类对象直接访问。
2>受保护继承中:
(1)基类的公有成员和保护成员都相当于派生类的保护成员,派生类可以通过自身的成员函数或其子类的成员函数访问它们。
(2)对于基类的私有成员,无论派生类内部成员或派生类的对象都无法直接访问。
3>私有继承中:
(1)基类公有成员和受保护成员都相当于派生类的私有成员,派生类只能通过自身的成员函数访问他们。
(2)对于基类的私有成员,无论派生类内部成员或派生类的对象都无法直接访问。

我只给你写了理论的区别比较,例子举起来太麻烦,如果你觉得有必要通过例子来说明的话,我可以写给你,你也可以拿一些不懂得问题问我。

求解 c++中三种继承方式的区别!

C++中,比较类的三种继承方式:共有继承、受保护继承、私有继承之间的区别。

public公有继承

protected保护继承

private私有继承

我们知道类的private和protected成员,在类外是不可以使用的.只有public成员可以在类外直接使用.

公有继承时,基类的private成员派生类也不可用,基类的public和protected成员在派生类中可直接使用.继承过来(变成派生类相应的public和protected成员)只有public成员在派生类外可以直接使用.

保护继承时,基类的private成员仍为有私有.基类的public和protected成员变成派生类的protected成员,这时在派生类外也不能直接使用原基类的public成员

私有继承时,基类的private成员仍为有私有.基类的public和protected成员将变成派生类的private成员.

举个例子.

class A

{

public:

int m_nTelNum;

protected:

int m_nAge;

private:

int m_nMoney;

};

class B:public A

{

void SetTelNum(int nTelNum)

{

m_nTelNum=nTelNum;

}

void SetAge(int nAge)

{

m_nAge=nAge;

}

void SetMoney(int nMoney)

{

m_nMoney=nMoney;//这里就出现错误,因为基类的private成员不能用.

}

};

B objB;//创建B类的对象objB

objB.m_nTelNum=123456;//可以

objB.m_nAge=30;//错误****lic继承中基类的protected在派生类中是protected

objB.m_nMoney=100;//更错误,在派生类中都不可以直接使用.在类外就更不能了.

class C:protected A

{

void SetTelNum(int nTelNum)

{

m_nTelNum=nTelNum;

}

void SetAge(int nAge)

{

m_nAge=nAge;

}

void SetMoney(int nMoney)

{

m_nMoney=nMoney;//这里就出现错误,因为这是基类的private成员不能用.

}

};

C objC;//创建C类的对象objC

objC.m_nTelNum=123456;//注意这里和public的区别,这里错误,m_nTelNum变成了C类的protected成员

objC.m_nAge=30;//错误****tected继承中基类的protected在派生类中是protected,这与public同相

objC.m_nMoney=100;//更错误,在派生类中都不可以直接使用.在类外就更不能了.

class D:private A

{

void SetTelNum(int nTelNum)

{

m_nTelNum=nTelNum;

}

void SetAge(int nAge)

{

m_nAge=nAge;

}

void SetMoney(int nMoney)

{

m_nMoney=nMoney;//这里就出现错误,因为这是基类的private成员不能用.

}

};

D objD;//创建D类的对象objD

objD.m_nTelNum=123456;//错误,m_nTelNum变成了D类的private成员

objD.m_nAge=30;//错误.private继承中基类的protected在派生类中是private

objD.m_nMoney=100;//更错误,在派生类中都不可以直接使用.在类外就更不能了.

从例子来看,三种继承从派生类内部引用来看好像没有区别,只在类外引用时表现不同.现在还看不出public和protected继承的区别

那再看一个例子.

class E:public B

{

void SetTelNum(int nTelNum)

{

m_nTelNum=nTelNum;//可以 因为这是B的公有成员

}

void SetAge(int nAge)

{

m_nAge=nAge;//可以 因为这是B的保护成员,现成变成E的protected成员

}

void SetMoney(int nMoney)

{

m_nMoney=nMoney;//这个肯定不可以!

}

};

E objE;//

objE.m_nTelNum=123456;//可以

//其它的两个就不能用了.

class F:public C

{

void SetTelNum(int nTelNum)

{

m_nTelNum=nTelNum;//可以 因为这是C的保护成员,这里与public继承已经有区别但还没有表现出来

}

void SetAge(int nAge)

{

m_nAge=nAge;//可以 因为这是C的保护成员,现成变成E的protected成员

}

void SetMoney(int nMoney)

{

m_nMoney=nMoney;//这个肯定不可以!

}

};

F objF;

objF.m_nTel=123456;//错误,因为这是F的保护成员.注意与E类区别

class G:public D

{

void SetTelNum(int nTelNum)

{

m_nTelNum=nTelNum;//不可以 因为这是D的private成员,注意这里区别

}

void SetAge(int nAge)

{

m_nAge=nAge;//不可以 因为这是D的private成员,注意区别

}

void SetMoney(int nMoney)

{

m_nMoney=nMoney;//这个肯定不可以!

}

};

//那G在类外就没有了可以引用的继承过来成员了!

//这些继承方式是很难理解的.最好的办法就是多写代码去试.

Java中public,private,protected,和默认的区别

作用域 当前类 同包 子类 其他

public √ √ √ √

protected √ √ √ ×

默认 √ √ × ×

private √ × × ×

类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。

Java中访问修饰符public、private、protecte、default的意义讲解:public(接口访问权限): Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。private(你无法访问): Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。protected(继承访问权限): 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。default(包访问权限):即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。

c++类中的私有成员变量有什么作用?

私有成员变量,即定义在private区域的成员变量。
对于本类成员函数来说,该变量与其它成员变量并无区别。使用上和作用上也都相同。
对于通过对象访问,私有成员变量无法通过对象访问。通过这一方式可以起到保护一些数据不被随意修改的效果。
另外,在出现继承时,基类的私有成员变量不会被继承。
所以,如果存在想保护不被对象引用,或者不想被继承的成员变量,需要定义为私有。

C++中,类的protected究竟有什么作用?

- 声明 private protected public
继承
private x x x
protected x o o
public x o o

类外调用 x x o

由上图可见protected和public的区别:
在类外调用时,可以调用public成员,但是不能调用protected成员
也就这一个区别了。

C++在公有继承的情况下,基类数据成员在派生类中的访问权限保持不变?受保护?受限制?

C++在公有继承的情况下,基类的public和protected成员的访问属性在派生类中不变,而基类的private成员不可访问。其他外部使用者只能通过派生类的对象访问继承的public成员

C++,类的公有继承,基类的私有成员在派生类中不可见或不可访问,这个不可见或不可访问是什么意思?

简单的表达一下,父母跟子女。基类就是父母,子女就是派生类。基类的私有成员就好比是父母的私房钱,子女能够继承父母的样貌(即公有成员),但是子女没法使用父母的私房钱也不能知道有多少私房钱(即不可见或不可访问),就是这么个意思。

服务器域的主要作用是什么?

DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。

DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。

扩展资料:

服务器域的类型:

1、主域名服务器

负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。

2、辅助域名服务器

当主域名服务器出现故障、关闭或负载过重时,辅助域名服务器作为主域名服务器的备份提供域名解析服务。辅助域名服务器中的区域文件中的数据是从另外的一台主域名服务器中复制过来的,是不可以修改的。

3、缓存域名服务器

从某个远程服务器取得每次域名服务器的查询回答,一旦取得一个答案就将它放在高速缓存中,以后查询相同的信息就用高速缓存中的数据回答,缓存域名服务器不是权威的域名服务器,因为它提供的信息都是间接信息。

4、转发域名服务器

负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

参考资料来源:百度百科-域名服务器