我不是 C++ 开发人员,但我当前的项目正在更新旧的 C++ 应用程序。
在整个应用程序中,我看到带有两个参数的附加语句..
strTemp.append( cDollars, len );
我正在尝试了解 C++ 语言以及它是如何在这个遗留应用程序中实现的。
我被困在附加功能上。
我可以让它与三个参数一起工作..
#include <iostream>
#include <string>
using namespace std;
int main(){
string msg = "Hi There!";
string msg2;
msg2.append(msg,0, 2);
cout << msg2;
cout << "\n";
system("pause");
return 0;
}
这返回...
Hi
Press any key to continue . . .
我可以让 append 使用单个参数..
#include <iostream>
#include <string>
using namespace std;
int main(){
string msg = "Hi There!";
string msg2;
msg2.append(msg);
cout << msg2;
cout << "\n";
system("pause");
return 0;
}
这返回...
Hi There!
Press any key to continue . . .
问题是我不能让它与两个参数一起工作......
#include <iostream>
#include <string>
using namespace std;
int main(){
string msg = "Hi There!";
string msg2;
msg2.append(msg, 1);
cout << msg2;
cout << "\n";
system("pause");
return 0;
}
--------------------Configuration: Program - Win32 Debug--------------------
Compiling...
Program.cpp
C:\USERS\E1009028\DOCUMENTS\VISUAL STUDIO 6 PROJECTS\SCRATCH\Program\Program.cpp(11) : error C2664: 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &__thiscall std::basic_string<char,struct std::char_traits<c
har>,class std::allocator<char> >::append(const char *,unsigned int)' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
Error executing cl.exe.
Program.exe - 1 error(s), 0 warning(s)
这是 Visual Studio 6(我提到过旧应用程序吗?)。
谁能告诉我我错过了什么?
谢谢,