2012-04-16 52 views
1

以下代碼在G ++(GCC)4.1.2上編譯時沒有任何警告或錯誤。g ++整數到字符串賦值,沒有錯誤/警告

是否有沒有發出錯誤/警告的原因?

有沒有可能導致它發出警告或錯誤的標誌?

#include <iostream> 

using namespace std; 

void func(string &s) 
{ 
    unsigned long u = 123; 
    s = u; 
} 

int main() 
{ 
    string s; 

    func (s); 

    return 0; 
} 

回答

3

沒有警告或錯誤的原因是因爲這是有效的C++。 std::string超出賦值運算符(operator=)取charlong可以隱式轉換爲char,因此代碼有意義。

相關問題