protect 继承_C++ 继承访问权限控制(public,protected,private)

C++ 继承访问权限控制(public,protected,private)

在本文中,您将学习在C ++中使用公共继承,受保护继承和私有继承。您将通过示例学习在何处以及如何使用它。

您可以从具有不同访问指定的基类声明一个派生类,即公共继承,受保护继承或私有继承。#include 

using namespace std;

class base

{

.... ... ....

};

class derived : access_specifier base

{

.... ... ....

};

注意:可以使用public,protected或private关键字代替上面代码中使用的access_specifier(访问说明符)术语。

访问控制和继承

派生类可以访问基类中所有的非私有成员。因此基类成员如果不想被派生类的成员函数访问,则应在基类中声明为 private。

我们可以根据访问权限总结出不同的访问类型,如下所示:访问publicprotectedprivate

同一个类yesyesyes

派生类yesyesno

外部的类yesnono

一个派生类继承了所有的基类方法,但下列情况除外:基类的构造函数、析构函数和拷贝构造函数。

基类的重载运算符。

基类的友元函数。

继承类型

当一个类派生自基类,该基类可以被继承为 public、protected 或 private 几种类型。继承类型是通过上面讲解的访问修饰符 access-specifier 来指定的。

我们几乎不使用 protected 或 private 继承,通常使用 public 继承。当使用不同类型的继承时,遵循以下几个规则:公有继承(public):当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。

保护继承(protected): 当一个类派生自保护基类时,基类的公有和保护成员将成为派生类的保护成员。

私有继承(private):当一个类派生自私有基类时,基类的公有和保护成员将成为派生类的私有成员。

多继承

多继承即一个子类可以有多个父类,它继承了多个父类的特性。

C++ 类可以从多个类继承成员,语法如下:class :,,…

{

};

其中,访问修饰符继承方式是 public、protected 或 private 其中的一个,用来修饰每个基类,各个基类之间用逗号分隔,如上所示。现在让我们一起看看下面的示例:

示例#include 

using namespace std;

// 基类 Shape

class Shape

{

public:

void setWidth(int w)

{

width = w;

}

void setHeight(int h)

{

height = h;

}

protected:

int width;

int height;

};

// 基类 PaintCost

class PaintCost

{

public:

int getCost(int area)

{

return area * 70;

}

};

// 派生类

class Rectangle: public Shape, public PaintCost

{

public:

int getArea()

{

return (width * height);

}

};

int main(void)

{

Rectangle Rect;

int area;

Rect.setWidth(5);

Rect.setHeight(7);

area = Rect.getArea();

// 输出对象的面积

cout <

// 输出总花费

cout <

return 0;

}

当上面的代码被编译和执行时,它会产生下列结果:总面积: 35

总花费: $2450

你可能感兴趣的:(protect,继承)