21xrx.com
2024-11-05 19:29:14 Tuesday
登录
文章检索 我的文章 写文章
C++中的两种继承方式
2023-07-05 09:53:41 深夜i     --     --
C++ 继承方式 单继承 多继承 虚继承

在C++中,继承是面向对象编程的一个重要概念。通过继承,子类可以使用父类的属性和方法。C++中有两种继承方式:公有继承和私有继承。

1.公有继承

公有继承是最常用的继承方式。在公有继承中,子类可以访问父类的公有成员和受保护成员。受保护成员只能在类的内部和派生类中访问,而不能在类的外部访问。私有成员只能在类的内部访问。

下面是一个示例代码:


//父类Person

class Person{

public:

  string name;

  void eat()

    cout << "Person: eat" << endl;

  

protected:

  int age;

  void sleep()

    cout << “Person: sleep” << endl;

  

private:

  string address;

};

//子类Student

class Student : public Person{

public:

  void study()

    cout << "Student: study" << endl;

  

};

int main(){

  Student stu;

  stu.name = "Tom";  //可以访问父类的公有成员name

  stu.eat();     //可以访问父类的公有成员eat()

  //键入下面这行代码会报错,因为age是受保护成员

  //stu.age = 18; 

  //键入下面这行代码会报错,因为address是私有成员,子类不能访问

  //stu.address = "Beijing";

  stu.study();

  return 0;

}

2.私有继承

私有继承的特点是父类的公有成员、受保护成员都成为子类的私有成员,私有成员还是无法被子类访问。

下面是一个示例代码:


//父类Person

class Person{

public:

  string name;

  void eat()

    cout << "Person: eat" << endl;

  

protected:

  int age;

  void sleep()

    cout << “Person: sleep” << endl;

  

private:

  string address;

};

//子类Student

class Student : private Person{

public:

  void study()

    cout << "Student: study" << endl;

  

};

int main(){

  Student stu;

  //以下两行代码都会报错,因为父类的公有成员、受保护成员都成为了子类的私有成员

  //stu.name = "Tom";

  //stu.age = 18;

  //以下两行代码也会报错,因为子类无法访问父类的私有成员

  //stu.address = "Beijing";

  stu.study();

  return 0;

}

综上所述,公有继承和私有继承是C++中的两种继承方式。在实际编程中,应根据实际情况选择合适的继承方式,以达到更好的程序设计和编码效果。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复