代码如下:

 1#include <iostream>
 2#include "String.h"
 3
 4using namespace std;
 5
 6std::ostream& operator<< (std::ostream& os, String& str)
 7{
 8    os << str.c_str();
 9    return os;
10}

11int main()
12{
13    cout << "sizeof( String ) is:" << sizeof( String ) << endl;
14
15
16    String str1 = "hello";
17    String str2(str1);
18//    const String str2(str1);
19
20    printf( "str1 address:%p\n", str1.c_str());
21    printf( "str2 address:%p\n", str2.c_str());
22        
23    cout << endl << "-----after writing str2-----" << endl << endl;
24    
25    //str2[0] = 'w';
26    str2[0];
27    
28    printf( "str1 address:%p\n", str1.c_str());
29    printf( "str2 address:%p\n", str2.c_str());
30 //   
31
32    String str3 = "1234";
33    char& c = str3[0];
34    String str4( str3 );
35    String str5("12");
36    str5 = str3;
37    
38    printf( "str3 address:%p\n", str3.c_str());
39    printf( "str4 address:%p\n", str4.c_str());
40    printf( "str5 address:%p\n", str5.c_str());
41 //   
42    c = 'H';
43 //   
44    cout << "str3 = " << str3.c_str() << endl;
45    cout << "str4 = " << str4.c_str() << endl;
46    cout << "str5 = " << str5.c_str() << endl;
47    
48    system("PAUSE");
49    return EXIT_SUCCESS;
50}

51


对于版本2,  在Dev C++ IDE下的输出结果为:

sizeof( String ) is:4
str1 address:004A0F60
str2 address:004A0F60

-----after writing str2-----

str1 address:004A0F60
str2 address:004A0FF8
str3 address:004A1020
str4 address:004A1048
str5 address:004A1098
str3 = H234
str4 = 1234
str5 = 1234

posted on 2010-07-13 14:45 mildcat 阅读(73) 评论(0)  编辑 收藏 引用 所属分类: C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理