.


:




:

































 

 

 

 


Class string




{ char *str; //

int size; //

public:

string(); //

string(int n,char *s); //

string(const string &); //

~string(); //

friend string operator+(string, const string);

string &operator=(const string &);

void see();

};

string::string(){size=0; str=NULL;}; //

string::string(int n,char *s) //

{ str=new char[size=n>=(strlen(s)+1)? n: strlen(s)+1];

strcpy(str,s);

}

string::string(const string &a) //

{ str=new char[a.size+1]; // this->str (+1 \0)

strcpy(str,a.str); //

size=strlen(str)+1;

}

string::~string(){ if(str) delete [] str;}

string operator+(string s1, const string s2) // +

{ string ss;

if(!ss.str) ss.str=new char[ss.size=strlen(s1.str)+strlen(s2.str)+2];

for(int i=0; ss.str[i]=s1.str[i]; i++); // \0

ss.str[i]=' '; // \0

for(int j=0; ss.str[i+1]=s2.str[j]; i++,j++); //

return ss;

}

string &string::operator =(const string &st) // =

{ if(this!=&st) // ,

{ delete str; //

str=new char[size=st.size];//

strcpy(str,st.str);

}

return *this;

}

void string::see()

{ cout << this->str << endl;

}

int main()

{ string s1(10,""), s2(30,""), s3(30," ");

s1.see();

s2.see();

string s4=s1; //

s4.see();

string s5(s1); //

s5.see();

s1+s2; // + ( operator +)

s1.see();

s3=s2; // = ( operator =)

s3.see();

s3=s1+s2; // +, =

s3.see();

return 0;

}

:

string s4=s1 s4. string s5(s1) s5. s1+s2 ( s2, s1). operator+ s1+s2. ( return ss) . s3=s2 s2 , operator= ( ) .

5.2.5. []

, operator ++ ( , ). ++ , , . []. -, friend- . operator[]()

__ _::operator [](int i)

{ }

int, , operator[] . []:

#include <iostream>

using namespace std;





:


: 2015-09-20; !; : 834 |


:

:

80% - .
==> ...

1306 - | 1194 -


© 2015-2024 lektsii.org - -

: 0.007 .