Понедельник, Июль 5th, 2010

Шпоры по С++

Количество операндов у операции-функции зависит от арности операции и от способа определения функции. Для обеспечения явной связи с классом операция-функция должна быть либо компонентом класса, либо определена как дружественная данному классу, либо у нее должен быть хотя бы один параметр типа класс (или ссылка на класс).
Если для класса Т введена операция-функция с приведенным выше заголовком, то выражение А*В интерпретируется как вызов функции operator *(A, B)
Перегрузим операцию ‘ + ‘ на объекты класса строка.
#include //stroka.h
#include
class stroka
{ char *ch; int len;
public:
stroka (int N=80) : len(0) { ch=new char[N+1]; ch[0]=‘ \ 0’ ; }
stroka (const char *arch) { len=strlen(arch); ch=new char[len+1];
strcpy(ch, arch);}
int& len_str (void) { return len; }
char *string (void) { return ch; }
void display (void){ cout<<“ \n Длина строки: “<string(), a.string()); strcpy(ps-> string(), b.string() );
ps->len_str()=ii;
return *ps;
}
Вторую возможность перегрузки бинарной операции представляют компонентные функции классов.
Если операция-функция определена как принадлежащая классу, то явный вызов ее возможен через имя объекта или указателя на объект и операций выбора компонент (‘ .’, ‘->‘ ). Третью возможность перегрузки операции предоставляет дружественная функция класса.
При перегрузке не допускается вводить собственные обозначения операций. Не допускают перегрузку следующие операции: ‘.’ , ‘.* ’, ‘::‘, siseof, ‘#’, ‘##‘. Нельзя изменить синтаксис выражений для перегруженных операций (невозможно ввести унарную ‘=‘ или бинарную ‘++’).

29 Простое наследование классов

Язык С++ позволяет классу наследовать элементы данных и элементы функций одного или нескольких других классов. Новый класс —называют производным классом. Класс, элементы которого наследуются производным классом, называется базовым классом. В свою очередь, производный класс может служить базовым для другого класса.
Наследование дает возможность заключить (абстрагировать) некоторое общее или схожее поведение различных объектов в одном базовом классе. Несколько классов будут затем наследовать это поведение, являясь производными от базового. Наследование также позволяет немного изменить поведение существующего класса. Производный класс может переопределить некоторые функции-элементы базового, наследуя, тем не менее, основной объем свойств и атрибутов базового класса.
Синтаксис наследования имеет следующий вид:
class Base
{ . . . };

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

Категория: Шпоры