如何动态制作两个字符串的数组

时间:2015-05-06 14:56:54

标签: c++ arrays string

我有一个问题,我应该在数组中的代码中使用这两个字符串,我不知道该怎么做。 这是我的代码:

#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中,并像那样使用它。我知道如何使用析构函数,但我不能使用数组。

非常感谢!

1 个答案:

答案 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;
};