2017-03-09 146 views
-2

如何正確傳遞一個常量字符串,例如:「Hello」作爲默認參數傳遞給構造函數而不會收到任何警告和錯誤?換句話說,在函數被調用之前,我如何爲它們保留內存?如何在C++中傳遞字符串作爲默認參數

+1

你在說什麼警告/錯誤? – arrowd

+0

@arrowd一個主要的是:C:... \ main.cpp | 26 |警告:不推薦將字符串常量轉換爲'char *'[-Wwrite-strings] | – Babresepid

+0

順便說一下,我需要char * cos它是我們作業的一部分 – Babresepid

回答

1
#include <iostream> 

const char *defString = "Hello"; 
void foo(const char *str = defString) { 
    std::cout << str; 
} 

int main() { 
    foo(); 
    foo("Hello, world!\n"); 
} 
+0

有沒有別的辦法?如果我想在功能中使用50個字符做什麼? (不使用「新」關鍵字來分配內存) – Babresepid

相關問題