Дістемелік кешен


Төменде келтірілген мысалдарды талқылаңыз



бет54/112
Дата22.12.2021
өлшемі0,85 Mb.
#127596
түріПрограмма
1   ...   50   51   52   53   54   55   56   57   ...   112
Байланысты:
ооп лекция

Төменде келтірілген мысалдарды талқылаңыз:

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;}






  1. Достарыңызбен бөлісу:
1   ...   50   51   52   53   54   55   56   57   ...   112




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет