C++ 如何在参数化构造函数中动态地执行?
i wnat此对象“name_of_pro”在 参数化构造函数。 我正在努力,但我认为这不是真的 ---------------------------------------C++ 如何在参数化构造函数中动态地执行?,c++,C++,i wnat此对象“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){ //
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;
}
我希望能帮上忙。我不太清楚我是否理解你的问题,但我想你的意思可能是你想把
name\u of_pro
复制成name\u 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\u 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)) {
}
如果这还不能回答您的问题,请告诉我。我会添加这一点,以表明您可以做到这一点,但我认为在很多情况下,在初始化列表中动态分配不是一个好主意。您的代码当前会动态分配
string
类型的对象,并让name\u of\u pro
指向它。不过,我不知道为什么会有人想这么做。string
,如果它是std::string
,则已在内部使用动态内存分配。我的问题是,大学想要这个(':