MST

星途 面试题库

面试题:C++ 中构造函数重载在简单数据封装场景的应用

假设有一个表示学生信息的类Student,包含姓名(string类型)和年龄(int类型)。请使用构造函数重载,实现以下功能:1. 提供一个默认构造函数,将姓名初始化为空字符串,年龄初始化为0;2. 提供一个带参数的构造函数,用于同时初始化姓名和年龄;3. 编写一段测试代码,创建两个Student对象,一个使用默认构造函数,另一个使用带参数的构造函数,并输出他们的信息。
39.3万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>
#include <string>

class Student {
private:
    std::string name;
    int age;
public:
    // 默认构造函数
    Student() : name(""), age(0) {}

    // 带参数的构造函数
    Student(const std::string& n, int a) : name(n), age(a) {}

    // 输出学生信息的函数
    void printInfo() const {
        std::cout << "Name: " << name << ", Age: " << age << std::endl;
    }
};

int main() {
    // 使用默认构造函数创建对象
    Student s1;
    // 使用带参数的构造函数创建对象
    Student s2("Alice", 20);

    // 输出两个学生对象的信息
    s1.printInfo();
    s2.printInfo();

    return 0;
}

上述代码中:

  1. 定义了Student类,包含nameage成员变量。
  2. 实现了默认构造函数,将name初始化为空字符串,age初始化为0。
  3. 实现了带参数的构造函数,用于同时初始化nameage
  4. main函数中创建了两个Student对象,一个使用默认构造函数,另一个使用带参数的构造函数,并调用printInfo函数输出他们的信息。