21xrx.com
2025-04-10 16:58:46 Thursday
文章检索 我的文章 写文章
什么是C++派生类?
2023-07-11 05:06:40 深夜i     40     0
C++ 派生类 继承 基类 成员函数

C++是一种面向对象的编程语言,其中的派生类是一种重要的编程概念。派生类是从另一个已有的类(称为基类)派生出来的类。派生类继承了基类的所有成员,包括数据成员和成员函数,并且可以添加自己的数据成员和成员函数。派生类也可以重载基类的成员函数或重新定义基类的虚函数。

派生类的声明方式与基类相同,但是在派生类的声明中必须指定基类。例如,下面是一个简单的派生类的声明:

class DerivedClass : public BaseClass
  // 成员声明
;

在上面的代码中,`DerivedClass`是从`BaseClass`派生出来的。注意到关键字`public`的使用,它决定了基类成员对派生类的可访问性。可以使用`public`、`private`或`protected`来指定访问级别。

派生类的构造函数必须调用基类的构造函数来初始化基类的数据成员。这可以通过在派生类的构造函数中使用初始化列表语法来完成。例如,下面是一个包含基类和派生类的构造函数的例子:

class BaseClass
{
public:
  BaseClass(int a) : x(a) {}
protected:
  int x;
};
class DerivedClass : public BaseClass
{
public:
  DerivedClass(int a, int b) : BaseClass(a), y(b) {}
private:
  int y;
};

在上面的代码中,`DerivedClass`的构造函数使用初始化列表语法调用`BaseClass`的构造函数,来初始化成员`x`。同时它还初始化了自己的成员`y`。

派生类可以访问基类的成员,但是不能直接访问私有成员。如果需要访问基类的私有成员,可以通过调用基类的公有成员函数来间接访问。例如:

class BaseClass
{
private:
  int x;
public:
  int getX() return x;
};
class DerivedClass : public BaseClass
{
public:
  void printX() { std::cout << "x = " << getX() << std::endl; }
};

在上面的代码中,`DerivedClass`的成员函数`printX()`调用了`BaseClass`的公有成员函数`getX()`来获取私有成员`x`的值。

总之,C++的派生类是一种从基类派生出来的新类,它继承了基类的所有成员,并且可以添加新的成员和重载基类的成员函数。派生类可以访问基类的成员,但是不能直接访问基类的私有成员。通过派生类,可以很好地实现代码重用和多态性。

  
  

评论区

请求出错了