C++类与对象:构造函数和析构函数解析

需积分: 9 1 下载量 190 浏览量 更新于2024-08-19 收藏 1.12MB PPT 举报
员表2;》 《《protected:》 成员表3;》 }; 成员表由数据成员(变量)和成员函数(方法)组成。类的定义就像一个蓝图,它描述了对象的状态(数据成员)和行为(成员函数)。在这个例子中,`CGoods` 类包含了四个数据成员:`Name`(字符数组,用于存储商品名称),`Amount`(整型,表示商品的数量),`Price`(浮点型,商品的单价)以及`Total_value`(浮点型,商品的总价)。 4.1.2 成员函数的定义 成员函数是类的一部分,它们可以操作类的数据成员。例如,你可以定义一个计算总价的成员函数,这样外部代码就可以通过调用这个函数来获取商品的总价。成员函数可以是公有的,私有的,或者受保护的,这取决于你希望如何控制对这些函数的访问。 4.1.3 对象的创建与使用 在 C++ 中,对象是类的实例。创建对象是通过使用类名和 new 运算符完成的,如下所示: ```cpp CGoods* myGoods = new CGoods(); ``` 这会为 `CGoods` 类创建一个新的对象,并返回指向它的指针。对象可以通过点运算符 `.` 来访问其成员,比如 `myGoods->Name` 可以访问对象的商品名称。 4.3 构造函数和析构函数 4.3.1 构造函数的定义与使用 构造函数是类的一个特殊成员函数,它的名称与类名相同,没有返回类型,并且通常用于初始化对象的数据成员。在上面的 `CGoods` 类中,如果想要在创建对象时初始化所有数据成员,可以定义一个构造函数,如下: ```cpp CGoods::CGoods(const char* name, int amount, float price) : Name(name), Amount(amount), Price(price), Total_value(amount * price) {} ``` 这个构造函数接受参数,并将它们赋值给相应的数据成员。 4.3.2 析构函数的定义 析构函数是另一个特殊的成员函数,用于在对象生命周期结束时进行清理工作。它的名称是类名前加上波浪线 (~),没有参数,也没有返回类型。对于 `CGoods` 类,如果需要在对象被销毁时释放一些资源,可以定义一个析构函数,如下: ```cpp CGoods::~CGoods() { // 清理代码,如释放动态分配的内存 } ``` 析构函数在对象生命周期结束时(例如通过 `delete myGoods;`)自动调用。 4.4 引用与复制构造函数 引用是 C++ 中的一个重要特性,它提供了一种安全的别名方式。复制构造函数是在创建一个新对象时,如果传入的是已有对象的引用,那么这个构造函数会被调用。例如: ```cpp CGoods otherGoods = myGoods; ``` 这里的 `CGoods` 复制构造函数会创建一个新的 `CGoods` 对象,并拷贝 `myGoods` 的状态。 4.5 运算符的重载 运算符重载允许自定义运算符的行为,使其能够应用于类的对象。例如,可以重载 `+` 运算符来合并两个 `CGoods` 对象的价格。 总结,C++ 中的类和对象是面向对象编程的基础,通过封装数据和行为,可以构建复杂的软件系统。构造函数和析构函数是类生命周期中的关键部分,分别用于初始化和清理对象。了解并熟练使用这些概念,是成为专业 C++ 开发者的必备技能。