2015-06-03 89 views
0

我有這兩個陳述。 string(sample_string).erase(i,j)sample_string.erase(i,j)有什麼區別?這些陳述之間有什麼區別

+0

您是否嘗試瞭解區別? – vib

+0

是的,我有這個語句在for循環,並沒有「字符串」在開始它不工作的權利,我不知道爲什麼 – couch334

+0

什麼是'sample_string'類型? –

回答

1
sample_string.erase(i,j) 

調用sample_string對象上的erase方法(假設這是一個實現此方法的類的一個實例)。


string(sample_string).erase(i,j) 

創建string類的臨時情況下,要求使用字符串初始化sample_string對象string構造函數,然後調用該臨時對象的erase方法。

0

第一個,string(sample_string).erase(i,j)創建一個臨時字符串,並從該臨時字符串中擦除。

第二次擦除字符串對象sample_string

1

我想simple_string的類型是std :: string。代碼

string(sample_string).erase(i, j) 

看上去不能工作,因爲字符串(sample_string)返回一個臨時OBJ,並且臨時字符串對象上當時稱爲擦除方法。與sample_string無關。

+0

可能是他做了'string new_string = string(sample_string).erase(i,j)'並且還需要同時使用'new_string'和'sample_string' – vib

+0

@振動,當然你可以 – finesse