C++中,派生类对基类的继承有三种方式:公有继承(Public)、包含继承(Protected)、私有继承(Private)。类B保护继承方式继承了类A,类C公有继承方式
classC :privateA//基类A的派生类C(私有继承) { public: voidfunct() { intc; c=privatedateA;//error:基类中私有成员在派生类中是不可见的 c=protecteddateA;//ok:基类的保护成员在派生类中为私有成员 c=publicdateA;//ok:基类的公共成员在派生类中为私有成员 } }; /// classD :protectedA//基类A...
简单来说,派生类能访问基类的public, protected成员,继承过来权限不变,派生类对象只能访问基类public成员。 测试代码如下: class A{private:int m_data1;void print1() { cout << 'private print1' << endl; }protected:int m_data2;void print2() { cout << 'protected print2' << endl; }public: ...
public继承:原来父类的public,protected,private成员在子类里保持不变。 protected继承:原来父类的public成员在子类里变成protected的了,其余不变,所以,当别的类使用这个子类, 或者另一个类继承这个子类时候,这个子类的父类的public就不能被访问了。 private继承:原来父类所以成员在子类里都变成private的了,所以,当别...
(1)父类的public成员成为子类的protected成员,只允许子类成员访问; (2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员; (3)父类的public成员成为子类的protected成员,只允许子类成员访问 3.如果子类从父类继承时使用的继承限定符是private,那么 ...
1.使用public继承时,派生类内部可以访问基类中public和protected成员,但是类外只能通过派生类的对象访问基类的public成员。 (1)基类的public成员在派生类中依然是public的。 (2)基类中的protected成员在派生类中依然是protected的。 (3)基类中的private成员在派生类中不可访问。
我们几乎不使用protected或private继承,通常使用public继承。当使用不同类型的继承时,遵循以下几个规则: 公有继承(public):当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。
public (公有继承) protected (保护继承) private (私有继承) 这三个关键字与之前的三种访问控制修饰符刚好相同,但在这里,它们有不同的意义。 对于public继承,基类中的成员的访问控制修饰符不作任何改动,原样继承到派生类中。 也就是说,基类中的public成员,到了派生类中,仍然是派生类的public成员;基类中的protec...
在threeD类中编写了一部分与twoD类中重复的代码,如果使用继承,则可以简化threeD类的代码。继承的一般形式如下:访问权限是访问控制说明符,它可以是public(公有继承)、private(私有继承)或protected(保护继承)。如果使用继承,我们可以将例9.2的threeD类的定义改写为:上例中,twoD称为基类,threeD称为派生...
C ++中提供了3种类型的访问修饰符: Public Private Protected 注意:如果我们没有为类内的成员指定任何访问修饰符,则默认情况下,成员的访问修饰符将为Private。 现在让我们详细了解这些访问修饰符: 1. Public:在公共说明符下声明的所有类成员将对所有人开放。声明为public的数据成员和成员函数也可以由其他类和函数访...