1、C++ 继承(子类和父类)
在C ++中,可以将属性和方法从一个类继承到另一个类。继承分为两类:
派生类(子类):从另一个类继承的类
基类(父类):从其继承的类
要从类继承,需要使用:符号。
例如,
#include <iostream>
using namespace std;
class MyClass { // class
public: // 访问修饰符
MyClass() { // 构造函数
cout << "Hello World!";
}
};
int main() {
MyClass myObj; // 创建MyClass的一个对象(会调用构造函数)
return 0;
}
2、C++ 多继承
上面的继承只是从一个基类继承,如果一个类有多个基类,这样的继承关系称为多继承。
语法:
class 派生类名: 访问控制符 基类名1,访问控制符 基类名2
{
数据成员和成员函数声明;
}
例如,
#include <iostream>
using namespace std;
//C++提供虚继承机制,防止类继承关系中成员访问的二义性。
//当类中出现virtual时,C++编译器会对象添加一个vptr指针,同时会产生一个虚函数表
class A
{
public:
int x; //4
public:
A()
{
cout << "A" << endl;
}
};
class B:virtual public A
{
int b; //4
public:
B(int x)
{
this->x = 10;
cout << "B" << endl;
}
};
class C :virtual public A
{
int c; //4
public:
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;
}