例如,如果我有以下幾點:如何在C++中將「string *」的內容轉換爲「const string&」?
void foo(string* s)
{
bar(s); // this line fails to compile, invalid init. error
}
void bar(const string& cs)
{
// stuff happens here
}
轉換什麼我需要做有呼叫的酒吧成功嗎?
例如,如果我有以下幾點:如何在C++中將「string *」的內容轉換爲「const string&」?
void foo(string* s)
{
bar(s); // this line fails to compile, invalid init. error
}
void bar(const string& cs)
{
// stuff happens here
}
轉換什麼我需要做有呼叫的酒吧成功嗎?
將其更改爲:
bar(*s);
void foo(string* s)
{
bar(*s);
}
s
指向一個字符串,bar
要求(參照)字符串,所以你需要給bar
什麼s
點。你拼寫「s
指向什麼」的方式是*s
。
將指針轉換爲引用時,確保不要嘗試轉換空指針很重要。編譯器必須允許你進行轉換(因爲通常它不能分辨它是否是有效的引用)。
void foo(string* s)
{
if(0 != s){
bar(*s);
}
}
*運算符是運算符&的逆運算符。從參考轉換爲使用&(地址)的指針。將指針轉換爲引用使用*(的內容)。
我該如何做另一種方式?把const字符串轉換成字符串*? – Petr 2015-11-05 15:36:15