这是书本上的代码`` 我想问的是红字部分,为什么要用常应用呢,似乎直接用值传递也可以达到同样的效果;
还有书上的运行结果是
size:0
length:0
capacity:0
max size:4294967293
size:16
length:16
capacity:31
max size:4294967293
size:10
length:10
capacity:31
max size:4294967293
但我运行后的结果是
size:0
length:0
capacity:15
max size:4294967294
size:16
length:16
capacity:31
max size:4294967294
size:10
length:10
capacity:15
max size:4294967294
(我用的是vc++2005)为什么会不一样呢?
#include <iostream>
#include <string>
using namespace std;
void PrintAttribute(congst string &str);
void main()
{
string s1,s2;
PrintAttribute(s1);
s1="My string object";
PrintAttribute(s1);
s2="new string";
PrintAttribute(s2);
system("pause");
}
void PrintAttribute(const string &str)
{
cout<<"size:"<<str.size()<<endl; //返回串长
cout<<"length:"<<str.length()<<endl; //返回串长
cout<<"capacity:"<<str.capacity()<<endl; //返回容量
cout<<"max size:"<<str.max_size()<<endl; //返回最大允许串长
}
[此贴子已经被作者于2007-4-8 14:03:27编辑过]