公有继承不改变基类成员的属性,也就是说基类的protected成员在子类中还是protected属性。
而类的对象是不能访问protected成员的,但类的成员函数是能访问protected成员的。
所以,基类的成员函数能调用自己的protected成员(其对象不能),子类的成员函数也能调用基类的protected成员(其对象不能)
class A{综上:保护成员在对于类对象来说访问权限和私有成员一样,但是对于子类来说,子类能访问基类保护成员,但不能访问基类私有成员。
追问我是说子类能不能直接调用基类protected?
还是说要调用基类public成员来间接调用?
基类自身能否直接调用?还是说间接调用?
就像问下调用的条件是啥
例子中很明显:子类能直接调用基类protected属性成员。不用依靠父类public成员来间接调用。基类自身也是可以直接调用。
追问基类自身也能直接调用?
你的意思是说,子类靠调用自身public来调用基类protected
基类可以靠调用自身public来调用自身protected?
也就是说,子类既可以调用自身public来调用基类protected, 又可以调用基类public来调用基类protected????
亲,请你看例子哦,好好理解下。
class A{请注意:类的成员函数可以调用类中各个属性的成员。而类的对象只能访问类的Public属性成员。所以,类的对象访问类中private和protected的时候要借助public成员函数,这就是类的接口函数。这种访问机制实现了类的封装。
C++中,基类protected能给子类直接调用?
而类的对象是不能访问protected成员的,但类的成员函数是能访问protected成员的。所以,基类的成员函数能调用自己的protected成员(其对象不能),子类的成员函数也能调用基类的protected成员(其对象不能)class A{public:A(int x,int y):x(x),y(y){}protected:void print(){cout<<"x point:"<...
请在这里概述您的问题C++中,基类protected能给子类直接调用??
但是基类由public继承派生出的子类是可以直接调用protected成员的,不管是函数还是变量。但是子类是无法调用private成员。基类由private派生出的子类是无法调用父类任何东西的,因为父类所有成员对子类都是private的。基类由protected派生出的子类和public一样,但是对于子类的使用者,所有由基类继承而来的东西都无...
C++中,类的protected究竟有什么作用?
C++中的protected关键字,其核心作用在于支持类的继承。当一个类的成员被声明为protected时,它允许其子类(继承自该类的类)可以直接访问这些成员,保持了基类的特性在子类中的可见性和可操作性。与public成员不同,public成员的访问权限对所有对象开放,无论是创建者还是外部代码。而private成员则仅限于...
C++:protected访问说明符
protected还是protected protected只有类本身 和类的子类可以访问,对象是无法访问的!除了在继承上 他跟private没有任何区别!private 子类也将不能访问!跟你说了啊~~~ 只是在继承上不同 其他都一样的 private无法继承 也就是说子类也不能用基类的 private...但是protected就是可以的~明白吗? pravit...
C++中,基类中的private跟protected成员权限上有什么区别?
不能使用对象访问。private成员只能在基类中访问,不能再子类访问,不能使用对象访问。以上基于public派生,否则基类的public成员在子类如果不再是public成员,则不能使用子类的对象访问。个人一个经验是,在基类访问、在子类访问、使用对象访问,新手需要很久才能熟练深刻区分这几个概念。
C++中protected和private的区别在哪里?
如果继承的话,protected和private没有区别,该类的客户不能调用该字段下的任何东西。如果发生继承。则子类可以使用父类的protected成员。不能使用private。
c++p什么意思
C++中的"protected"是一个访问控制修饰符,它具有特殊的访问权限规则。在类的层次结构中,一个类的对象(包括该类自身的对象)可以直接访问其protected成员,这些成员的访问权限类似于public,但区别在于,当一个类被其他类(子类)继承时,子类可以访问其protected成员,而private成员则无法被子类直接访问。p...
c++protected是什么意思
C++:protected访问说明符 。一个类自身的对象是可以访问protected的成员的 ,protected类型的成员在一个类中与pravite类型的成员性质亦一样的,只是在派生继承时性质不同,pravite不能被派生出来的类(也就是子类)调用(访问),而protected是可以被派生出来的类调用的。protected专门就是为继承(子类)设计...
c++里面的protect和public、private有什么区别?
在程序的任何地方都可以被访问,就是公共变量的意思,不需要通过成员函数就可以由类的实例直接访问 private修饰的成员变量 只有类内可直接访问,私有的,类的实例要通过成员函数才可以访问,这个可以起到信息隐藏 protected是受保护变量 类内和子类可直接访问,也就是说,基类中有protected成员,子类继承于...
C++ 类的问题 基类成员函数可以调用子类的成员函数吗?
实际上指向的东西是未知的,有些编译器会提醒,但有些编译器可以编译通过。试试在abc里进行new然后输出,应该是可以的。忠告:不要在基类构造函数中使用任何本类的虚函数,因为构造函数在虚函数表的构建之前,所以执行结果是未知的,基类可能会也可能并不会 如你预期的那样调用子类重载的虚函数,...