参数化构造函数中的动态如何?

时间:2013-10-12 15:50:25

标签: c++

我知道这个对象“name_of_pro”是动态分配的 参数化构造函数。 我正在尝试,但我认为不是真的

---------------------------------------...

class employee{ 
string name, ID, *name_of_pro; 
int age ; 
float salary ; 
public: 
employee(){}; 

employee ( string n,int ag, float sa , string name_pro){ // constructor. parameterized 
name=n; 
age=ag; 
salary=sa; 
name_of_pro=new string; 
} 

我希望能帮助你。

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解您的问题,但我认为您的意思是,您希望将name_of_pro作为name_pro的副本。

employee ( string n, int ag, float sa , string name_pro){ 
    name=n; 
    age=ag; 
    salary=sa; 
    name_of_pro=new string(name_pro);  // You can make a pointer to a copy this way
} 

如果这是你想要的,你只需要确保删除析构函数中的字符串name_of_pro

~employee() {
    delete name_of_pro;
}

更简单的是初始化列表而不是所有简单赋值。

employee ( string name, int age, float salary , string name_pro) : 
        name(name), age(age), salary(salary), name_of_pro(new string(name_pro)) { 
}

如果这不能解答您的问题,请告诉我。