Информатика и технология программирования


Вопросы без ответов - часть 2


//------------------------------------------------------- 4


char string::operator[](int n)
{
if (n &#62= strlen(s)) return(' '); return(s[n]);
}
void main() {
char c,t; string x("abcd"); c = x[2]; t = x[20]; }
//------------------------------------------------------ 5


char &#38string::operator()(int n)
{
if (n &#62= strlen(s)) return(s[0]);
return(s[n]);
}
void main() {
string x("abcd"); x(2) = 'e'; x(20)='e'; }
//------------------------------------------------------ 6


string &#38string::operator=(int src)
{ char ss[80];
if (s!=NULL) delete s;
sprintf(ss,"%d",src);
s = new char [strlen(ss)+1];
strcpy(s,ss); return *this;
}
string::operator int () { return(strlen(s)); }


void main() {
string x("abcd"),y,z; int i0 = 10,i1,i2,i3;
i1 = x; z = i0; i2 = z; i3 = y = (int)x + 10;
}
//------------------------------------------------------ 7


string &#38string::operator+(string &#38t)
{ char *p = new char[strlen(s)+strlen(t.s)+1];
strcpy(p, s);
strcat(p, t.s);
if (s!=NULL) delete s;
s = p; return(*this);
}
void main() {
string x("abcd"),y("11"); x + y + y; x + x; }
//------------------------------------------------------ 8


string &#38string::operator+(char *t)
{
char *p = new char[strlen(s)+strlen(t)+1];
strcpy(p, s);
strcat(p, t);
if (s!=NULL) delete s;
s = p; return(*this);
}
void main()
{ string x("abcd"),y("11"),z; x + "444"; y + "22" + "44"; }
//------------------------------------------------------


class strings
{
char *s;
public:
strings(char *);
strings(strings &#38);
strings() { s=NULL; }
strings operator+(char *);
strings operator+(strings);
};
strings::strings(strings &#38src)
{ s = new char[strlen(src.s)+1]; strcpy(s,src.s); }
strings::strings(char *src)
{ s = new char [strlen(src)+1]; strcpy(s,src); }
//------------------------------------------------------ 9


strings strings::operator+(char *t)
{ strings x;
x.s = new char[strlen(s)+strlen(t)+1];



Начало  Назад  Вперед



Книжный магазин