21xrx.com
2024-09-19 09:45:17 Thursday
登录
文章检索 我的文章 写文章
C++中的析构函数和虚函数
2023-07-05 02:27:19 深夜i     --     --
C++ 析构函数 虚函数 多态 继承

C++是一种常用的编程语言,具备强大的面向对象编程能力。其中,析构函数和虚函数是C++中非常重要的概念,对于理解C++的面向对象编程思想至关重要。

首先,我们需要了解什么是析构函数。在C++中,当一个对象被创建时,构造函数会被自动调用以初始化对象。相对地,析构函数则会在对象被删除或超出作用域时被自动调用。析构函数负责完成对象的清理工作,包括释放内存等。

C++使用“~类名()”的格式来定义析构函数,例如:


class Point {

public:

  Point(int x = 0, int y = 0): m_x(x), m_y(y) {}

  ~Point() cout << "Destructor called." << endl;

private:

  int m_x, m_y;

};

该析构函数会在Point对象被销毁时自动调用,显示输出一条信息,用于验证析构函数的执行。

接下来,让我们来了解虚函数。如果我们想要在派生类中重写基类的函数,我们需要将该函数定义为虚函数,以便在运行时动态绑定。例如:


class Shape {

public:

  Shape() {}

  virtual ~Shape() {}

  virtual void draw() cout << "Draw Shape." << endl;

};

class Rectangle: public Shape {

public:

  Rectangle() {}

  virtual ~Rectangle() {}

  virtual void draw() cout << "Draw Rectangle." << endl;

};

在上面的代码中,我们定义了一个Shape类和一个Rectangle类,并将Shape类的析构函数和draw函数都定义为虚函数。这样,当我们以Shape类指针的形式调用draw函数时,会自动调用Rectangle类的draw函数,从而实现多态。另外,我们同样需要定义Rectangle类的析构函数,以便在Rectangle对象被销毁时正确释放内存。

总结起来,C++中的析构函数和虚函数都是非常重要的概念,用于实现对象的清理和多态等功能。对于C++的面向对象编程初学者来说,熟练掌握这些概念是必不可少的。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复