构造函数与对象成员初始化:C++类实例解析

需积分: 0 1 下载量 80 浏览量 更新于2024-08-19 收藏 1.72MB PPT 举报
在C++编程中,第3章关注的是类与对象的概念及其在程序设计中的应用。本节的核心内容围绕着对象成员的初始化展开,特别是构造函数的作用。构造函数是一个特殊的方法,它在创建新对象时自动调用,用于初始化对象的成员变量。 首先,我们来看一个名为`Student`的类示例,其构造函数如下: ```cpp class Student{ public: // 修改后的构造函数 Student(char* pName="no name", int ssID=0) : id(ssID) { cout << "Constructing student " << pName << endl; strncpy(name, pName, sizeof(name)); name[sizeof(name) - 1] = '\n'; } …… }; ``` 构造函数接受两个参数:姓名(`pName`)和学生ID(`ssID`)。在这里,`id`是一个成员变量,通过初始化列表`id(ssID)`进行初始化。当创建`Student`对象时,会先设置`id`的值,然后输出消息并复制`pName`到`name`成员,确保名字被正确初始化。 运行这个代码后,输出结果表明构造函数成功执行了预期的操作: ``` Assigning student id 9818 Constructing student Randy Destructing id 9818 ``` 3.9 节讨论了类对象成员,即对象中包含的数据(属性)和行为(方法)。例如,`Student`类包含了属性如年龄、性别、身高和体重,以及可能的动作如“跑”。这些属性通常定义为私有成员,通过公有成员函数(如构造函数、析构函数、set_time()和show_time())来访问和操作。 结构体`Time`与类在定义方式上有所不同,但它们都是用来表示具有时间和日期的数据结构。`struct Time`没有继承或多态功能,而类则提供了更丰富的特性。在实际应用中,如果结构体的行为相对简单,且不涉及继承和多态,那么结构体可能更为合适。但如果需要复杂的功能或者遵循面向对象原则,那么类是更好的选择。 总结来说,本章内容重点在于理解类的构造过程,尤其是构造函数在对象初始化中的作用,以及如何通过构造函数和其他成员函数管理类对象的属性和行为。此外,还强调了在设计程序时选择结构体还是类的关键考虑因素。学习者需要掌握这些核心概念,以便在实际项目中灵活运用面向对象编程技术。