R6-1 派生类的定义和使用
时间: 2024-02-15 15:01:44 浏览: 18
派生类是在已有的基类上创建一个新的类,新的类可以继承基类的成员函数和数据成员,并且还可以添加自己的成员函数和数据成员。定义派生类的语法如下:
```
class 派生类名 : 访问控制符 基类名1, 访问控制符 基类名2, ... {
派生类自己的成员列表
};
```
其中,访问控制符可以是 `public`、`protected` 或 `private`,用于指定基类成员的访问权限,派生类自己的成员列表包括成员函数和数据成员。
使用派生类时,可以使用基类的成员函数和数据成员,也可以使用派生类自己的成员函数和数据成员。如果派生类中定义了与基类同名的函数或数据成员,那么派生类的同名成员会覆盖基类的同名成员。
例如,下面是一个派生类的例子:
```
class Base {
public:
int x;
void func1() {
cout << "Base::func1()" << endl;
}
};
class Derived : public Base {
public:
int y;
void func1() {
cout << "Derived::func1()" << endl;
}
void func2() {
cout << "Derived::func2()" << endl;
}
};
int main() {
Derived d;
d.x = 1;
d.y = 2;
d.func1(); // 输出 Derived::func1()
d.func2(); // 输出 Derived::func2()
return 0;
}
```
在上面的例子中,`Derived` 是从 `Base` 派生而来的派生类,`Derived` 添加了一个新的成员变量 `y` 和一个新的成员函数 `func2()`,同时重写了 `Base` 的成员函数 `func1()`。在 `main()` 函数中,我们可以通过 `Derived` 的对象 `d` 来访问 `Base` 的成员变量 `x` 和成员函数 `func1()`,也可以访问 `Derived` 自己的成员变量 `y` 和成员函数 `func2()`。当调用 `d.func1()` 时,会输出 `Derived::func1()`,说明 `Derived` 的同名成员函数覆盖了 `Base` 的同名成员函数。