2014-10-18 80 views
1

我想給一個唯一的ID號碼等於創建一個類的對象的時間 因此,我嘗試了這個代碼,我知道從Java(但它不不幸的是工作)字符串和int類型的連接(在聲明!)

名稱由父類車輛 繼承我想,在GNU C++編譯器(只有申報工作,您需要先INT轉換爲字符串實現)

#include <iostream> 
static int id = 0; 

class Ship:private Vehicle 
{ 
    Ship() 
    { 
     id++; 
     this->name="Pirate"+id; 
    } 
} 
+1

是什麼名字的類型? – 2014-10-18 18:06:44

+0

@VladfromMoscow它是字符串 – hitter 2014-10-18 18:30:39

回答

3
// C++98 

Ship() { 
    std::ostringstream tmp; 
    tmp << "Pirate" << ++id; 
    name = tmp.str(); 
} 

// C++11 

Ship() : name("Pirate" + std::to_string(++id)) {} 
1

。將id替換爲std::to_string(id)

2

如果數據成員名稱的類型爲std::string,那麼你可以寫

this->name = "Pirate" + std::to_string(id); 
+0

你的意思是'this-> name',而不是'this.name'。我試圖編輯但只有2個字符。 – zmb 2014-10-18 18:13:03

+1

@zmb我的意思是複製和粘貼。:) – 2014-10-18 18:13:55

+0

@Vlad from Moscow正確的是this-> name而不是this.name,因爲C++認爲類是結構體和類字段就像結構體成員一樣? – hitter 2014-10-18 18:32:03