0

このオブジェクト「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; 
} 

助けてください。

4

1 に答える 1

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

これがあなたの質問に答えない場合はお知らせください。

于 2013-10-12T15:54:45.840 に答える