C++程序设计:深入理解构造函数

需积分: 1 0 下载量 138 浏览量 更新于2024-10-27 收藏 980B TXT 举报
"C++编程题,涉及构造函数的使用与实现" 在C++编程中,构造函数是类的一个特殊成员函数,它的主要作用是在创建对象时初始化类的成员变量。这个给定的代码示例展示了如何定义和使用构造函数来初始化一个`student`类的对象。在这个`student`类中,包含了学生的姓名、学号和五门课程的成绩。 首先,让我们详细了解一下构造函数的定义: ```cpp student() { charsname[20]; cout << "ù캯!" << endl; cout << "ѧ:" << endl; cin >> sname; cout << "ѧѧ:" << endl; cin >> num; int len = strlen(sname); name = new char[len + 1]; strcpy(name, sname); for (i = 0; i < 5; i++) { cout << "" << i + 1 << "šγɼ:"; cin >> score[i]; } } ``` 这段代码定义了`student`类的默认构造函数。当创建一个新的`student`对象时,这个构造函数会被自动调用。它首先输出提示信息,然后从用户那里接收学生的名字、学号以及五门课程的成绩,并将这些信息存储在相应的成员变量中。`name`是一个字符指针,因此需要动态分配内存以存储输入的名字字符串。 接着,我们看下析构函数的定义: ```cpp ~student() { cout << "!" << endl; delete[] name; } ``` 析构函数在对象生命周期结束(即对象被销毁)时自动调用,用于清理对象在构造过程中分配的资源。在这个例子中,析构函数简单地输出一个感叹号并释放`name`指向的内存。 `student`类还包含了一个计算平均分的方法`average()`: ```cpp float student::average() { float ave; int sum = 0; for (i = 0; i < 5; i++) sum += score[i]; ave = float(sum / 5); return ave; } ``` 这个方法计算并返回五门课程的平均成绩。 最后,在`main`函数中,我们创建了一个`student`类的对象`A`: ```cpp void main() { student A; A.display(); A.average(); } ``` 这行代码实际上调用了构造函数来初始化`A`,然后调用`display()`方法打印学生的信息,再调用`average()`方法计算并显示学生的平均成绩。 这个编程题旨在教授如何在C++中使用构造函数来初始化对象,并展示如何通过析构函数管理动态内存,同时提供了一个计算平均分的方法。通过这个例子,你可以更好地理解构造函数和析构函数在实际编程中的应用。