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

Шпоры по С++

за которым следует двоеточие. После появления спецификатора доступа в тексте определения класса означает, что до конца определения либо другого спецификатора доступа, все компоненты класса имеют указанный статус. Защищенные (protected) компоненты классов нужны для построения иерархии классов. При использовании классов без порождения на основе одних классов других (производных) применение спецификатора protected эквивалентно использованию спецификатора private.
Применение в качестве ключа класса union приводит к экономии памяти за счет многократного использования одних и тех же участков памяти для разных целей. По умолчанию, все компоненты этого класса общедоступные.
Использование в определении класса ключевого слова class, приводит к тому, что все компоненты данного класса являются собственными (private), т. е. недоступными для внешних обращений (по умолчанию). При определении (создании) объекта класса, если конструктор не вызывается программистом явным образом, компилятор вызывает его автоматически, используя умалчиваемые значения. Итак, конструктор превращает фрагмент памяти в объект того типа, который предусмотрен определением класса. В классе может быть несколько конструкторов (перегрузка), но только один с умалчиваемым значением параметров. Нельзя получить адрес конструктора. Параметром конструктора не может быть его собственный класс, но может быть ссылка на него. Для явного вызова конструктора используют:
имя_класса имя_объекта (фактические_параметры_конструктора);
или
имя_класса (фактические_параметры_конструктора);
Первая форма допускается только при непустом списке фактических параметров. complex1 SS (10.3, 0.22 );
Вторая форма вызова приведет к созданию объекта, не имеющего имени. complex1 ZZ=complex1 ( 4.0, 5.0 );
Существуют два способа инициализации данных объекта с помощью конструкторов:
— передача значений параметров в тело конструктора (рассмотрен ранее);
— применение списка инициализаторов данных объекта. Этот список помещается между списком параметров и телом конструктора:
имя_класса (список_параметров):
список_инициализаторов_ком
{тело конструктора}
Каждый инициализатор списка относится к компоненту и имеет вид:
имя_компонента_данных (выражение)
class AZ
{ int ii; float ee; char cc;
public:
AZ (int in, float en, char cn ) : ii(5),
ee(ii*en+in),
cc(cn) {}
. . .
};
Компонентной функцией специального вида является деструктор.
# include
# include
class stroka //Файл stroka.cpp
{ 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 Длина строки:”<

Страницы: 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

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