C++ 如何在参数化构造函数中动态地执行?

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){ //

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){ // 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
,则已在内部使用动态内存分配。我的问题是,大学想要这个(':