`

私有继承

    博客分类:
  • c++
阅读更多
私有继承可以让子类访问父类的protected和public,但不能让子类的对象访问父类的protected和public
#include<iostream>
using namespace std;

class A{
protected:
    int i;
public:
    A(){
        i = 10;
    }
    void test(){
        cout << "abc" << endl;
    }
};

class B:private A{
public:
    B(){
        test();
        cout << i << endl;
    }
};

int main(){
    B b;
    //b.test(); //inaccessible
    //cout << b.i << endl;//inaccessible
}

abc
10


私有继承和受保护继承的派生类都可以和公有继承一样访问和修改基类的proteced和public的变量。

公有继承派生类的对象:可以直接访问和修改基类的公有变量,但不可以访问和修改受保护的
受保护继承和私有继承的派生类的对象:不可以直接访问和修改基类的任何变量
#include<iostream>
using namespace std;
class A{
public:
    int i;
    A():i(0),j(0){};
protected:
    int j;
};

class B:public A{
public:
    B(){cout << j << endl;}
};

class C:protected A{
public:
    C(){cout << i << "," << j << endl;}
};

class D:private A{
public:
    D(){
        i = 1,j=2;
        cout << i << "," << j << endl;
    }
};

int main()
{
    A a;
    B b;
    C c;
    D d;
    b.i = 3;
    //b.j = 4;//error
    //c.i = 1;//error
    //cout << d.i << endl;//error
}


0
0,0
1,2
分享到:
评论

相关推荐

    C++公有继承、保护继承和私有继承的区别

    C++提供了三种不同的继承方式,每种方式对基类成员的访问权限有不同的规定,分别是公有继承(public inheritance)、保护继承(protected inheritance)和私有继承(private inheritance)。 1. 公有继承(public ...

    C++ 中私有继承的作用

    C++ 中私有继承的作用 私有继承的 第一个规则:和公有继承相反,如果两个类之间的继承关系为私有,编译器一般不会将派生类对象转换成基类对象。 第二个规则: 从私有基类继承而来的成员都成为了派生类的私有成员,...

    详解C++编程中的私有继承和公有继承

    C++类的私有继承 在声明一个派生类时将基类的继承方式指定为private的,称为私有继承,用私有继承方式建立的派生类称为私有派生类(private derived class ), 其基类称为私有基类(private base class )。 私有基类的...

    C/C++ 公有继承、保护继承和私有继承的对比详解

    C++ 提供了三种继承方式:公有继承(public inheritance)、保护继承(protected inheritance)和私有继承(private inheritance),每种方式都有不同的访问权限和行为。 1. **公有继承(Public Inheritance)** -...

    C++中公有继承、私有继承、保护继承.的含义及例子

    C++中public继承、private继承、protected继承的例子

    C++面向对象程序设计习题继承与派生.pdf

    在C++中,继承方式有三种:公有继承、私有继承和保护继承。 公有继承是指基类中的公有成员和保护成员在派生类中仍然是公有成员和保护成员。基类中的私有成员在派生类中不可访问。公有继承的优点是可以继承基类的...

    c++继承与派生

    本节课程主要介绍C++中继承与派生的概念和使用方法,包括公有继承、私有继承和保护继承等不同的继承方式。通过实验和实践,掌握继承与派生的基本概念和使用方法。 继承的概念 继承是面向对象编程中的一种机制,它...

    c++程序设计 继承与派生实验(二)

    继承方式主要有三种:公有继承(public inheritance)、私有继承(private inheritance)和保护继承(protected inheritance)。在公有继承下,基类的公有和保护成员在派生类中保持相同访问级别;私有继承则使基类的...

    用派生与继承计算圆面积的代码

    - **私有继承(Private Inheritance)**: 私有继承下,派生类的成员不能直接访问基类的任何成员。如果派生类需要访问基类的成员,则必须通过派生类的成员函数来实现。这种继承关系通常表示为“has-a”关系。 - **...

    C++继承与派生课件

    - **私有继承(private)**:基类的所有成员在派生类中都被视为私有,包括原本的公有和保护成员。派生类内部可以访问基类的公有和保护成员,但外部代码不能直接访问基类的任何成员。 - **保护继承(protected)**...

    第11章 继承与派生.doc

    派生类的声明方式有三种:公有继承(public)、私有继承(private)和保护继承(protected)。在声明派生类时,新类体中只需要定义新增加的成员——新数据成员、新成员函数。派生类的构成包括从基类中继承的全部成员...

    c++私有继承

    //19.18 利用类的包含来实现代码重用 #include #include &lt;limits&gt; // 为了使用numeric_limits using namespace std; class Data { public: Data(int number,float Price):num(number),price(Price){} ...

    C语言程序设计 继承性和派生类PPT课件.pptx

    私有继承是指基类的公有成员和保护成员都作为派生类的私有成员,不能被这个派生类的子类所访问,而基类的私有成员也仍然是私有的。保护继承是指基类的所有公有成员和保护成员都成为派生类的保护成员,不能被这个派生...

    c++继承的视频

    - **私有继承(private)**:基类的公有和保护成员在子类中变为私有。 - **保护继承(protected)**:基类的公有成员在子类中变为保护,保护成员保持不变。 4. **虚函数与多态** - **虚函数(virtual function)...

    C++第七章 继承和派生(一).ppt

    私有继承的特点是基类的公有成员和保护成员作为派生类的私有成员,并且不能被这个派生类的子类访问。保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问...

    C 程序设计课件:第17章 多重继承.ppt

    保护继承将基类的成员变为 protected 成员,而私有继承将基类的成员变为 private 成员。例如,在 SleeperSofa 类中,Bed 和 Sofa 两个基类的成员可以被保护继承或私有继承。 多重继承是一种强大的继承机制,它使得...

    c++继承与派生的相关资料

    私有继承通常用来表示“is-implemented-in-terms-of”关系,即派生类是用基类实现的,但并不表示“is-a”关系。 5.4.3 保护成员和保护继承(Protected Inheritance) 保护继承方式下,基类的公有和保护成员在派生类...

Global site tag (gtag.js) - Google Analytics