2012-12-06 50 views
2

的情況下,我想執行以下重載=操作者在C++中的字符串

int p = "xyz" 

我應包含3,即,在=的右側的字符串的長度。

我試着用char *數據成員創建一個類String,但是由於我們必須傳遞至少一個我們重載該運算符的類的對象,所以我無法重載=運算符。

請大家幫忙。

我試着做到以下幾點:

friend void operator=(int, char*) 

,但它不會工作,因爲沒有類類型的參數。

+0

可能會有所幫助:http://www.cplusplus.com/forum/general/2137/ – psur

+0

什麼,你不知道['strlen'](http://en.cppreference.com/w/cpp/string/byte/strlen)? –

+0

我知道關於strlen,但我需要使用重載而不使用任何庫函數。 –

回答

10

這樣做是不可能的,operator=對整數類型不可重載。 請參閱this answer

如果使用std::string,解決方法很簡單:

std::string p = "abc"; 
int l = p.size(); // Better than l = p, because self describing