我不明白 string str2=str; 用串给串付初值?,下面还做了比较?可能是传的地址吧。把str的首地址给了str2,这样str2和str 就都是一样的地址了,所以比较的是首地址,errors=0,那为什么我在最后只能输出str,却不能输出str2,
<<c++ Primer 3rd Edition>>中文完美版
第三章 C++数据类型
练习3.14
// ***** string implementation *****
#include <iostream>
#include <string>
using namespace std;
int main() {
int errors = 0;
string str( "a very long literal string" );
for ( int ix = 0; ix < 1000; ++ix )
{
int len = str.size();
string str2 = str;
if ( str != str2 )
++errors;
}
cout << "string class: "
<< errors << " errors occurred.\n"
<<str<<str2; \\我后加上去的,把str2去掉可编译成功.
}
编译出错如下:
--------------------Configuration: Cpp1 - Win32 Debug--------------------
Compiling...
Cpp1.cpp
G:\D?óú\C++\?ì3ì\exercise\string\Cpp1.cpp(19) : error C2065: 'str2' : undeclared identifier
G:\D?óú\C++\?ì3ì\exercise\string\Cpp1.cpp(20) : warning C4508: 'main' : function should return a value; 'void' return type assumed
Error executing cl.exe.
Cpp1.exe - 1 error(s), 1 warning(s)