如何使用相同的成员函数更改相同的不同元素
How do I change different elements of the same with same member function?
我是C++新手,找不到答案。这是我想写的代码:
#include <iostream>
using namespace std;
class Employee{
private:
string name;
string gender;
public:
void display();
void update(string);
Employee(string a, string b){
name = a;
gender = b;
};
~Employee(){};
};
void Employee::display(void){
cout << "Name: " << name << endl;
cout << "Gender: " << gender << endl;
}
void Employee::update(string a){
/*
a function that updates either the
name element or gender element
based on which element it is used by.
*/
}
int main(){
Employee employee1 ("Joe","Male");
Employee employee2 ("Jon","Male");
employee1.display();
employee2.display();
employee1.name.update("Mary"); // This is what I want to do: Same function
employee2.gender.update("Female"); // for different elements of same type
employee1.display();
employee2.display();
return 0;
}
我该怎么做?我想过函数重载,但这两个元素属于同一类型。我不想传递任何额外的值并使代码看起来很糟糕。有什么想法吗?谢谢。
像这样使用二传手和getter:
void Employee::setName(const string &a) {
this->_name = a; // validate or whatever you need to do
}
const string &Employee::name() const {
return this->_name;
}
void Employee::setGender(const string &a) {
// ....
}
正如人们所期望的那样使用
employee1.setName("Mary");
employee2.setGender("Female");
basic_string
类已经实现了一个 'setter':
employee1.name.assign("Mary");
employee2.gender.assign("Female");
如果您想像在问题中写的那样访问name
和gender
,则需要同时public
,正如@sop正确指出的那样。
相关文章:
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- c++类声明时,相同的例程,不同的成员变量类型
- 不同语言中相同代码的不同行为
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- 为什么glGetSubroutineIndex为不同的函数返回相同的值?
- 我希望定义两个具有相同代码的不同名称的库
- 结构体和类的不同大小(),彼此具有相同的字段类型
- 与其他编译器相比,相同的代码在工作室Microsoft提供不同的输出
- 类具有相同的接口,但参数的类型不同
- (ODR 使用问题)在不同文件中priority_queue名称相同的结构
- 是否需要 mutex() 来安全地同时访问具有 2 个线程的数组的不同元素?
- 访问数组中的不同元素
- 如何在另一个数组中找到一个未排序数组的不同元素索引?
- 将相同的功能应用于不同大小的N数组的每个元素
- 数组的不同元素上的多个锁
- 计算数组的不同元素
- 如何使用相同的成员函数更改相同的不同元素
- C++从两个大小相同的不同整数数组中寻找最小商
- c++列表迭代器访问同一对象中的不同元素
- 在c++中,如何改变元素在一个向量中的位置,并对另一个不同的向量进行相同的改变