c语言编程笔录

首页 >   > 笔记大全

笔记大全

C++类中三大函数是什么及怎么使用

更新时间:2023-07-30

前言

在C++中,类是面向对象编程的重要概念之一。类是一种用户自定义的数据类型,它封装了数据和操作数据的函数。在一个类中,有三个重要的成员函数,也被称为三大函数,它们分别是构造函数、析构函数和拷贝构造函数。这三个函数在类的使用过程中起着非常重要的作用,通过它们的合理使用,我们可以实现对象的初始化、资源的释放以及对象拷贝等操作。

构造函数

构造函数是在对象创建时被自动调用的特殊成员函数,用于完成对象的初始化。在使用类创建对象时,构造函数会被自动调用,为对象的成员变量赋予初始值。构造函数通常与类具有相同的名称,并且没有返回类型。 下面是一个简单的构造函数的例子:
class Circle {
private:
    double radius;
public:
    Circle(double r) {
        radius = r;
    }
};
上面的代码中,构造函数的名称为Circle,接受一个double类型的参数r,并将其赋值给私有成员变量radius。当使用Circle类创建对象时,构造函数会被调用,并将传入的参数赋值给radius。

析构函数

析构函数是在对象销毁时自动调用的特殊成员函数,用于完成对象的清理工作。析构函数的主要作用是释放对象占用的资源,比如释放动态分配的内存、关闭文件等。 下面是一个简单的析构函数的例子:
class Circle {
private:
    double* radius;
public:
    Circle(double r) {
        radius = new double;
        *radius = r;
    }
    ~Circle() {
        delete radius;
    }
};
上面的代码中,析构函数的名称为~Circle,没有参数和返回类型。在构造函数中,我们通过new运算符动态分配了一个double类型的内存空间,然后在析构函数中使用delete运算符释放了这块内存空间。

拷贝构造函数

拷贝构造函数是一种特殊的构造函数,用于在创建一个新对象时,根据已有的对象创建一个新的副本。拷贝构造函数通常是在对象之间进行赋值、传递对象给函数或从函数返回对象时调用的。 下面是一个简单的拷贝构造函数的例子:
class Circle {
private:
    double radius;
public:
    Circle(const Circle& c) {
        radius = c.radius;
    }
};
上面的代码中,拷贝构造函数的名称为Circle,参数类型为const Circle&,表示接受一个常量引用。在拷贝构造函数中,我们将已有对象c的radius成员变量的值赋值给新对象的radius成员变量。 总结起来,类中的三大函数(构造函数、析构函数和拷贝构造函数)是实现对象初始化、资源释放和对象拷贝等操作的重要方式。它们在类的使用过程中非常常用,对于掌握类的概念和面向对象编程来说非常重要。通过合理使用这三大函数,我们可以更好地管理对象的生命周期,并实现对象的各种操作和功能。