Статья: Класс Строка

Вот довольно реалистичный пример класса string. В нем производится учет ссылок на строку с целью минимизировать копирование и в качестве констант применяются стандартные символьные строки C++.

#include

#include

class string {

struct srep {

char* s; // указатель на данные

int n; // счетчик ссылок

};

srep *p;

public:

string(char *); // string x = "abc"

string(); // string x;

string(string &); // string x = string ...

string& operator=(char *);

string& operator=(string &);

~string();

char& operator[](int i);

friend ostream& operator<<(ostream&, string&);

friend istream& operator>>(istream&, string&);

friend int operator==(string& x, char* s)

{return strcmp(x.p->s, s) == 0; }

friend int operator==(string& x, string& y)

{return strcmp(x.p->s, y.p->s) == 0; }

friend int operator!=(string& x, char* s)

{return strcmp(x.p->s, s) != 0; }

friend int operator!=(string& x, string& y)

{return strcmp(x.p->s, y.p->s) != 0; }

};

Конструкторы и деструкторы просты (как обычно):

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 239
Бесплатно скачать Статья: Класс Строка