利用c++程序编写在类内声明与定义构造函数,给数据成员(年龄age、学号num 性别sex、姓名name)赋默认值(例如:18,202311,m, zhangsan) - . 2.定义一个对象stu1与对象指针p1,通过指针p1调用display()函数,查看构造函数给的默认值是否正确; 3. 在类内再声明一个构造函数,在类外定义,实现函数重载(此处不赋默认值)
时间: 2024-02-24 12:58:02 浏览: 25
好的,以下是代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
int age;
int num;
char sex;
string name;
public:
// 默认构造函数,给数据成员赋默认值
Student(int age = 18, int num = 202311, char sex = 'm', string name = "zhangsan") {
this->age = age;
this->num = num;
this->sex = sex;
this->name = name;
}
// 显示学生信息
void display() {
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "学号:" << num << endl;
cout << "性别:" << sex << endl;
}
// 重载构造函数,不赋默认值
Student(int age, int num, char sex, string name) {
this->age = age;
this->num = num;
this->sex = sex;
this->name = name;
}
};
int main() {
Student stu1; // 使用默认构造函数创建stu1对象
Student* p1 = &stu1; // 定义对象指针p1,指向stu1对象
p1->display(); // 通过指针p1调用display()函数,查看默认值是否正确
Student stu2(20, 202312, 'f', "lisi"); // 使用重载构造函数创建stu2对象
stu2.display(); // 显示stu2对象的信息
return 0;
}
```
输出结果为:
```
姓名:zhangsan
年龄:18
学号:202311
性别:m
姓名:lisi
年龄:20
学号:202312
性别:f
```
可以看到,使用默认构造函数创建的stu1对象的默认值是正确的。同时,使用重载构造函数创建的stu2对象也成功地实现了函数重载。