c++ 中 private和protected有什么区别?老觉得作用是一样的。郁闷。。。

来源:百度知道 编辑:UC知道 时间:2024/05/18 05:59:53
请高手给指点一二。

不是,有区别。
如A是从Base继承的,那么A可以访问Base的protected成员,但不能访问private成员。


class Base
{
private int i;
protected int j;
};

class A : public Base
{
public void F()
{
this.i = 100; // 这里会出错
this.j = 100; // 这里没问题
}
};

private是将函数或数据声明为私有的
protected 是将他们声明为保护的
平时都可以通用
但是在类的继承方面 为了使继承类可以拥有基类的私有成员函数或数据
就在基类中将他们声明为保护的 即protected
但是他们在其他类看来还是私有的 即不能访问的
这样的好处是使继承类继承基类的私有成员也保护了其安全
即对其他类是私有的 但是对于继承类来说是公有的了

private和protected和微软十年努力有什么关系?C++语言来自AT&T的bell实验室。

有区别的。
private是只有类内成员可以访问,继承类的成员不可以访问。而protected不仅类内成员可以访问;继承类的成员也可以访问。

简单的说,private和protected在基类当中是没有区别的,只有在派生类中才有区别.保护成员可被各代派生类访问,而私有成员只能通过基类方法访问.

private是为了保护累的成员变量,不希望外部包括子类去调用,一般用于实现具体的算法
protected是防止外部调用,但是希望子类能够使用,一般表示一些公共方法,但是这些方法是缺少保护的,所以希望子类调用时能够消息调用