You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++ 创建employee类对象数组并通过构造函数赋值成员属性的方法

C++对象数组初始化实现方案

1. 为employee类添加构造函数

你需要给类新增接收姓名、工号两个参数的构造函数,创建对象时可直接完成成员赋值,这里同时优化了成员方法的const正确性,代码如下:

#include <iostream>
#include <string>
using std::string;

class employee
{
private:                
    string name;
    string idNumber;

public:                 
    // 新增带参构造函数
    employee(string n, string id): name(std::move(n)), idNumber(std::move(id)) {}

    void setName(string);
    void setIDnumber(string);
    // get方法添加const修饰,允许const对象调用
    string getName() const;
    string getIDnumber() const;
};

// 成员方法参考实现,你也可以保留原有逻辑
void employee::setName(string n) {
    name = std::move(n);
}
void employee::setIDnumber(string id) {
    idNumber = std::move(id);
}
string employee::getName() const {
    return name;
}
string employee::getIDnumber() const {
    return idNumber;
}

2. 初始化对象数组

C++支持用花括号初始化列表,在定义数组时直接为每个元素传入构造参数,不需要后续单独赋值:

const int numEmployees = 3;

int main()
{
    // 按顺序给3个员工对象传入构造参数
    employee employeeInfo [numEmployees] = {
        {"Tom Jones", "123456"},
        {"James Blyth", "QE123"},
        {"Alice Smith", "AB789"} // 第三个员工参数可按需求修改
    };

    // 示例:遍历展示所有员工信息
    for(int i = 0; i < numEmployees; i++) {
        std::cout << "员工" << i+1 << ":姓名-" << employeeInfo[i].getName() 
                  << ",工号-" << employeeInfo[i].getIDnumber() << std::endl;
    }
    return 0;
}

补充说明

  • 如果需要统一管理姓名字段,直接遍历employeeInfo数组,调用对应的getName()/setName()方法即可批量读写所有员工的姓名
  • 构造函数参数可以改为const string&类型,减少不必要的字符串拷贝,性能更优
  • 如果你后续需要动态调整员工数量,更推荐使用std::vector<employee>代替普通数组,扩容和管理更灵活

内容的提问来源于stack exchange,提问作者David___S__

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:51:01