c++ 继承 举例说明
时间: 2023-05-11 11:01:52 浏览: 126
当一个类从另一个类派生出来时,我们称之为继承。在 C++ 中,我们使用关键字 "class" 来定义一个类,使用关键字 "public" 来指定继承方式。下面是一个简单的继承示例:
```
class Animal {
public:
void eat() {
cout << "Animal is eating" << endl;
}
};
class Dog : public Animal {
public:
void bark() {
cout << "Dog is barking" << endl;
}
};
int main() {
Dog myDog;
myDog.eat(); // 继承自 Animal 类
myDog.bark();
return 0;
}
```
在上面的示例中,我们定义了一个 Animal 类,它有一个 eat() 方法。然后我们定义了一个 Dog 类,它继承自 Animal 类,并添加了一个 bark() 方法。在 main() 函数中,我们创建了一个 Dog 对象,并调用了它的 eat() 和 bark() 方法。由于 Dog 类继承自 Animal 类,因此它可以使用 Animal 类中定义的 eat() 方法。
相关问题
请举例解释c++继承
好的,假设有一个基类Animal,它有三个成员变量和两个成员函数:
```c++
class Animal {
private:
int age;
string name;
string species;
public:
void eat() {
cout << "Animal is eating." << endl;
}
void sleep() {
cout << "Animal is sleeping." << endl;
}
};
```
现在我们要创建一个派生类Dog,它继承了基类Animal的所有成员变量和成员函数,并且还有自己的一些成员变量和成员函数:
```c++
class Dog : public Animal {
private:
string breed;
public:
void bark() {
cout << "Dog is barking." << endl;
}
};
```
这个例子中,我们使用public关键字将Dog类声明为公有继承Animal类的派生类。这意味着Dog类可以访问Animal类的公有成员函数和变量。
现在我们可以创建一个Dog对象,并调用它继承的成员函数和自己的成员函数:
```c++
int main() {
Dog mydog;
mydog.eat(); // 调用继承自Animal类的eat()函数
mydog.bark(); // 调用Dog类自己的bark()函数
return 0;
}
```
这个程序将输出:
```
Animal is eating.
Dog is barking.
```
这说明Dog类成功地继承了Animal类的成员函数,并添加了自己的成员函数。
在C++中的继承和派生 分别举例 说明区别与联系
在C++中,继承和派生是构建复杂类结构的基础,它们的主要区别和联系如下:
### 继承(Inheritance)
**例子:**
```cpp
class Shape { // 父类或基类
public:
virtual void draw() { /* 默认绘制形状 */ }
};
class Circle : public Shape { // 子类或派生类
public:
void draw() override { // 重写父类的draw方法
cout << "Drawing a circle.\n";
}
};
```
**区别与联系:**
- **区别**:Circle类继承自Shape类,意味着它自动获得了Shape类的所有公共成员(包括公有属性和方法)。`public`关键字表示继承的方式,`protected`或`private`可以选择更严格的访问控制。
- **联系**:子类能重写(override)或扩展父类的方法,如上述的`draw()`。此外,还可以使用`virtual`关键字提供虚函数,实现动态绑定,提高代码的灵活性。
### 派生(Derivation)
**区别与联系**:
- **区别**:派生概念在C++中与继承一致,如上例所示,无需额外解释。
- **联系**:派生类是对基类功能的扩展,可以看作是基类的一种实例化,因此派生类的对象可以被视为基类的对象使用,直到调用特定于派生类的方法。
总结来说,继承与派生是面向对象设计的核心,它们都实现了代码复用,并允许通过子类增加或改变功能。继承强调的是共享属性和方法,而派生则是这个共享基础上的具体实现。
阅读全文