c++继承与派生的概念,联系以及继承的多种类型和代码实例
时间: 2024-05-15 10:20:06 浏览: 6
继承和派生是面向对象编程的基础概念之一,在C++中支持多种继承方式。继承是通过创建一个新类,该类从现有的基类中获取属性和方法。派生是从现有的类中创建新类的过程,新类称为派生类,被继承的类称为基类。C++支持单继承、多继承和虚继承。
在单继承中,一个类只能从一个基类继承。例如:
```
class Shape {
public:
void setWidth(int w) {
width = w;
}
void setHeight(int h) {
height = h;
}
protected:
int width;
int height;
};
class Rectangle: public Shape {
public:
int getArea() {
return (width * height);
}
};
```
在多继承中,一个类可以同时从多个基类继承。例如:
```
class A {
public:
void funcA() {
cout << "function A\n";
}
};
class B {
public:
void funcB() {
cout << "function B\n";
}
};
class C: public A, public B {
};
int main() {
C c;
c.funcA();
c.funcB();
return 0;
}
```
在虚继承中,避免了多重继承时派生类中有多个同名基类成员的问题,实现了对象的共享。例如:
```
class A {
public:
void funcA() {
cout << "function A\n";
}
};
class B: virtual public A {
public:
void funcB() {
cout << "function B\n";
}
};
class C: virtual public A {
public:
void funcC() {
cout << "function C\n";
}
};
class D: public B, public C {
public:
void funcD() {
cout << "function D\n";
}
};
```
以上为C++中继承和派生的概念、联系和代码实例。