什麼是傳遞NULL字符串的函數,而無需創建一個變量的正確方法? 我看到編譯錯誤與下面的代碼,我不希望改變的定義。也可能需要更改字符串,因此不想將其標記爲常量類型。傳遞空字符串函數作爲參數
#include <iostream>
#include <string>
using namespace std;
void
myfunc(int i, string &my) {
if (my.empty()) {
cout << "Empty" << endl;
} else {
cout << "String is " << my <<endl;
}
}
int main()
{
std::string str1 ("Test string");
myfunc(1, str1);
std::string str2 ("");
myfunc(2, "");
return 0;
}`
my1.cpp:18:錯誤:的類型的非const引用初始化無效 '的std :: string &' 從臨時類型的 '爲const char *' my1.cpp:6:錯誤:在經過論證2「無效MYFUNC(INT,的std :: string &) 」
繼編譯,但我不希望創建局部變量
#include <iostream>
#include <string>
using namespace std;
void
myfunc(int i, string &my) {
if (my.empty()) {
cout << "Empty" << endl;
} else {
cout << "String is " << my <<endl;
}
}
int main()
{
std::string str1 ("Test string");
myfunc(1, str1);
std::string str2 ("");
myfunc(2, str2);
return 0;
}
你通過引用傳遞意味着傳遞變量的地址而不是值。如果你想通過價值。 – Raindrop7
引用通常以僞裝的形式實現爲指針,但這不是標準所要求的。 ** IS **要求的是參考實際上引用了一個適當的對象。 –
@ Raindrop7,我們有沒有辦法通過引用字符串而不創建對象? – Tectrendz