[英]Copy string in C++
我想這個構造函數的參數從轉換const char*
到std::string
,但我不知道如何為新的名稱正確地復制到名字 。
Player::Player(const char* name) :
level(1),life(1),strength(1),place(0){
char* new_player_name = new char[strlen(name) + 1];
strcpy(new_player_name, name);
this->player_name = new_player_name;
}
Player::Player(string name) :
level(1),life(1),strength(1),place(0){
string new_player_name(' ',name.length() + 1); //#1
// I didn't know how to proceed
}
類的數據成員:
class Player {
char* player_name;
int level;
int life;
int strength;
int place;
};
考慮將player_name
為std::string
。
然后您的構造函數可以開始
Player::Player(const char* name) : player_name(name)
{
而且您不需要擺弄所有動態分配的char
數組。
您也可以將name
類型更改為const std::string&
:
Player::Player(const std::string& name) : player_name(name)
{
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.