Төменде келтірілген мысалдарды талқылаңыз:
1-мысал. Келесі программа қайта анықталатын қосу және азайту операторларын қолдануды суреттейді:
#include
#include
class string
{ public:
string(char *); // Конструктор
void operator +(char *);
void operator -(char);
void show_string(void);
private;
char data[256] ;};
string::string(char *str)
{ strcpy(data, str);}
void string::operator +(char *str)
{ strcat(data, str);}
void string::operator -(char letter)
{ char temp[256] ;
int i, j;
for (i = 0, j = 0; data[i]; i++) if (data[i] != letter) temp[j++] = data[i];
temp[j] = NULL;
strcpy(data, temp);}
void string::show_string(void)
{ cout << data << endl;}
void main(void)
{ string title( "C++-те программалау");
string lesson("Амалдарды қайта анықтау");
title.show_string();
title + " мен оқимын!";
title.show_string() ;
lesson.show_string();
lesson - 'P';
lesson.show_string();}
2-мысал. Қайта жүктеуді қолдана отырып, программа тең (!=), тең емес (==) немесе басқада салыстыру операторларын қайта анықтай алады. Келесі программа string класына екі объектінің тең тең емес екенін салыстыратын жаңа объектіні қосады. Программа операторларды қайта жүктеуді қолдана отырып, жолдық объектіде бірдей жолдар бар ма екенін келесі түрде тексере алады:
#include
#include
class string
{public:
string(char *); // конструктор
char * operator +(char *);
char * operator -(char);
int operator ==(string);
void show_string(void);
private:
char data[256];};
string::string(char *str)
{ strcpy(data, str);}
char * string::operator +(char *str)
{ return(strcat(data, str));}
char * string::operator -(char letter)
{ char temp[256];
int i, j;
for (i = 0, j = 0; data[i]; i++) if (data[i] 1= letter) temp[j++] = data[i];
temp[j] = NULL;
return(strcpy(data, temp));}
int string::operator ==(string str)
{ int i;
for (i = 0; data[i] == str.data[i]; i++)
if ((data[i] == NULL) && (str.data[i] == NULL)) return(1); // ТЕҢ
return (0); //ТЕҢ ЕМЕС }
void string::show_string(void)
{ cout << data << endl;}
void main(void)
{ string title( " C++-те программалау");
string lesson("Амалдарды қайта анықтау");
string str( " C++-те программалау");
if (title == lesson) cout << "title және lesson тең" << endl;
if (str == lesson) cout << "str және lesson тең" << endl;
if (title == str) cout << "title және str тең" << endl;}
Достарыңызбен бөлісу: |