我知道这个对象“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;
}
我希望能帮助你。
答案 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)) {
}
如果这不能解答您的问题,请告诉我。