成员函数C++初学者

Member Functions C++ beginner

本文关键字:初学者 C++ 函数 成员      更新时间:2023-10-16

所以基本上我正在玩弄一个简单的员工类,它假设将名称映射到唯一的 ID 号。现在事情是这样的。我想创建一个成员函数,该函数不带参数,但返回名称和员工 ID 的映射。我希望通话直观,例如。 employee.map_this() // returns a map

class Employee
{
public:
    Employee() = default;
    Employee(const string& pname);  
    Employee& operator=(const Employee&) = delete; 
    Employee(const Employee&) = delete;
private:
    const string name;
    static int ID_no;
    const string employee_ID;
    map<const string, const string> map_this();
};
int Employee::ID_no = 0001;
Employee::Employee(const string& pname) : name(pname), employee_ID(to_string(ID_no))
{ 
    ID_no++;
}
map<const string, const string> Employee::map_this() 
{
    //     How do I do this????
}
std::map不是

你想象的那样。例如,当您想要将所有员工 ID 号映射到其各自的Employee对象时,将使用映射。

如果你想将两个值作为一个对象返回,那么我建议你使用 std::pair .

std::pair<const std::string, const std::string> Test::getNameAndId() {
    return {name, employee_ID};
}

然后,您可以像这样访问std::pair中的名称和 id:

Employee employee{"Carl"};
auto& p = employee.getNameAndId();
std::cout << "Name: " << p.first << ", Id: " << p.second << std::endl;

输出:

Name: Carl, Id: 1