我有一个问题,我应该在数组中的代码中使用这两个字符串,我不知道该怎么做。 这是我的代码:
#include <iostream>
#include <string>
#include <stdlib>
using namespace std;
class Employee
{
private:
string name;
string surname;
int ID;
float rate;
public:
Employee()
{
name=" ";
surname=" ";
ID=0;
rate=0;
}
Employee(string n,string sur,int i,float r)
{
name=n;
surname=sur;
ID=i;
rate=r;
}
string getName()const{return name;}
string getSurname()const{return surname;}
float getRate()const{return rate;}
int getID()const{return ID;}
void setRate(string r){rate=r;}
~Employee();
};
我的问题是将字符串名称和字符串姓氏放在数组* emp_name中,并像那样使用它。我知道如何使用析构函数,但我不能使用数组。
非常感谢!
答案 0 :(得分:0)
这可能是他们想要看到的:
class Employee {
public:
Employee()
{
emp_name = new string[2];
// just add your values to index 0 and 1
}
~Employee(); // delete[] the emp_name
private:
std::string* emp_name;
};
现在在析构函数中,您必须删除已分配的数组。你必须编写一个复制构造函数(如果要复制对象,我们需要移动资源)。并移动assign / constructor(如果您使用的是C ++ 11)。
或者我们避免所有麻烦并使用矢量:
#include <vector>
class Employee {
public:
Employee(string n, string sur, int i, float r)
: emp_name({ n, sur }),
ID(i),
rate(r)
{}
private:
vector<string> emp_name;
};