2012-11-30 60 views
-4

在類構造函數中,我創建了一個字符串,並將其存儲到*this中。 構造函數中的此代碼不起作用:在C++的構造函數中放入一個字符串

// Inside the class constructor 
string str1 = "hello"; 
*this = str1; 

我應該使用一些其他的數據類型,而不是string str1?有什麼建議麼?

+0

你重載'operator =(std :: string const&)'? – Pubby

+1

'* this'的類型是什麼? – 2012-11-30 23:00:00

+1

你在試圖實現什麼 - 這個構造函數是如何調用的,它是什麼類型 – Mark

回答

0

*this它是你的類對象的實例。

你不能這樣做,直到*this= str1;你們班是不是std::string

+3

或者,它可以提供一個轉換賦值操作符operator =(std :: string const&)' – 2012-11-30 23:01:34

1

這將是很高興看到你的類確定指標,但由於它不存在讓我做一個長鏡頭,並試着猜測什麼問題。

當您聲明一個類時,它最初是空的。你不能在構造函數中存儲任何東西。

class Empty { 
    Empty() { /* can't do much here */ } 
} 

類由成員字段組成,它們可以爲您存儲數據。你可能想要做的是這樣的:

class String { 
    std::string member; 
    String() { 
     std::string str1 = "hello"; 
     member = str1; 
    } 
} 
相關問題