开发手册 欢迎您!
软件开发者资料库

C++ 面向对象 继承

C++ 是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。C++ 面向对象编程有三大特性,它们是封装、继承和多态。本文主要介绍C++ 面向对象 继承。

1、C++ 继承(子类和父类)

在C ++中,可以将属性和方法从一个类继承到另一个类。继承分为两类:

派生类(子类):从另一个类继承的类

基类(父类):从其继承的类

要从类继承,需要使用:符号。

例如,

#include using namespace std;class MyClass {     // class  public:           //  访问修饰符    MyClass() {     // 构造函数      cout << "Hello World!";    }};int main() {  MyClass myObj;    // 创建MyClass的一个对象(会调用构造函数)  return 0;}

2、C++ 多继承

上面的继承只是从一个基类继承,如果一个类有多个基类,这样的继承关系称为多继承。

语法:

class 派生类名: 访问控制符 基类名1,访问控制符 基类名2
{
数据成员和成员函数声明;
}

例如,

#include using namespace std;//C++提供虚继承机制,防止类继承关系中成员访问的二义性。//当类中出现virtual时,C++编译器会对象添加一个vptr指针,同时会产生一个虚函数表class A{public:    int x;  //4public:    A()    {        cout << "A" << endl;    }};class B:virtual  public A{    int b; //4public:    B(int x)    {        this->x = 10;        cout << "B" << endl;    }};class C :virtual public A{    int c; //4public:    C(int x)    {        this->x = 20;        cout << "C" << endl;    }};class D :public B,public C{    int d; //4 public:    D(int x):B(10),C(20)    {        this->x = 30;        cout << "D" << endl;    }};int main(){    cout << sizeof(A) << endl;   //4    cout << sizeof(B) << endl;   //12    cout << sizeof(C) << endl;   //12    cout << sizeof(D) << endl;   //24    return 0;}