-1
我試圖編譯下面的代碼C++ SUBSTR方法 - 「無效使用的‘這個’非成員函數」
std::string key = "DISTRIB_DESCRIPTION=";
std::cout << "last five characters: " << key.substr(this.end()-5) << '\n';
,編譯器說
error: invalid use of ‘this’ in non-member function
std::cout << "last five characters: " << key.substr(this.end()-5) << '\n';
^
substr
是一個「公開成員函數「爲std::string
,爲什麼我不能使用this
?
我知道我可能只是再次引用key
代替this
,但我的原代碼
std::cout << "Description: " << line.substr(found+key.length()+1).substr(this.begin(),this.length()-1) << '\n';
在第二次使用的substr
,字符串沒有一個名字,以便引用的唯一途徑這將是this
。我固定它
std::cout << "Description: " << line.substr(found+key.length()+1,line.length()-found-key.length()-2) << '\n';
但我現在好奇this
不起作用。
你真的需要閱讀一本關於C++的書。 – SergeyA
我投票結束這個問題作爲題外話,因爲OP需要一本書,而不是一個SO問題。 – SergeyA
我不認爲我們應該踢出初學者。 OP在理解他需要去的地方迷路了。我認爲SO的存在正是爲了讓這樣的答案有一席之地。問題根據SO的指導方針提出,可以通過未來的問題提出。我投票我們保持開放。 –