Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Любой элемент класса — как частный, так и общий — имеет доступ ко всем остальным элементам класса.

Читайте также:
  1. I. ОПРЕДЕЛЕНИЕ НАВИГАЦИОННЫХ ЭЛЕМЕНТОВ
  2. II. Элементалы и дэвы огня
  3. III. Познание элементарного в частицах.
  4. III. То, что вечно, не имеет ни начала ни причины
  5. Lt;question> Экономика, в которой присутствуют элементы рыночной и административно-командной системы
  6. Lt;question> Экономика, в которой присутствуют элементы рыночной и административно-командной системы
  7. q в любой форме (например, в виде графической схемы) составить алгоритм решения задачи, например как показано на рисунке 2.4.2;

Функции-члены класса обычно описываются в программе непосредственно после объявления класса и перед функцией main(). Функции, не относящиеся к классам, по-прежнему описываются после функции main() и имеют прототипы обычного вида.

4. Классы С++. Дополнительные особенности классов. Простой класс. Вложенные классы. Вложенные структуры внутри класса. Альтернативный вариант вложенных описаний.

Тип C++ class обладает достоинствами структур и возможностью ограниченного доступа к определенным данным при помощи функций, также являющихся членами класса. Расширенные возможности классов включают в себя возможность инициализировать и защищать жизненно важные функции и данные.

Концепция классов C++ позволяет сделать шаг к абстрактным типам данных. Класс реализует тип данных-членов и увязывает с данными функциями-членами; с их помощью стало возможным использование концепции хранения структурированных данных вместе с функциями, которые оперируют с переменными-членами.

Описание класса начинается с ключевого слова class, за которым следует имя класса (тег). Обычно функции-члены объявляются как public. Объявление private делает переменные-члены видимыми только для функций-членов данного класса. Часто это явление называется сокрытием данных (data hiding). Объявление public обеспечивает доступность функций-членов за пределами класса:

class car {

int mileage;

int tire_pressure;

float speed;

public:

int maintenace(int);

int wear_record(int);

int air_resistance(float);

} mycar;

При использовании вложенных классов нужно следить за тем, чтобы получившееся объявление не было бы слишком сложным.

#include <iostream>

#include <string.h>

using namespace std;

class employee

{

struct emp_name

{

char firstname[20];

char middlename[20];

char lastname[20];

} name;

 

struct emp_hours

{

double hours;

double base_sal;

double overtime_sal;

} hours;

 

public:

void emp_input(void);

void emp_output(void);

}; Видимость вложенных классов такая же, какой бы она была, если бы эти классы были описаны за пределами класса employee.

Возможно использование следующего синтаксиса для вложенных описаний:

class cars {

int mileage;

public:

void trip(int t);

int speed(float s);

};

class contents {

int count;

public:

cars mileage;

void rating(void);

}

Здесь класс cars является вложенным внутри класса contents. Вложенные классы — будь они внутри или снаружи описания — имеют одинаковую область видимости.

Конструкторы и деструкторы. Список инициализации элементов. Конструкторы по умолчанию и конструкторы копирования. Создание простых конструкторов и деструкторов. Использование конструкторов для инициализации переменных-членов класса. Использование конструкторов и деструкторов для выделения и освобождения свободной памяти.

Конструктор — это метод класса.Конструкторы используются для инициализации переменных класса или для выделения памяти. Они всегда имеют такое же имя, как и класс, в котором они определены. Конструкторы располагают дополнительными возможностями: они могут иметь аргументы и их можно перегружать. Конструктор выполняется автоматически при создании объекта типа class. Объекты свободной памяти — это такие объекты, которые генерирует операция new, они служат для выделения памяти создаваемым объектам. Если конструкторы не определены явно, то они генерируются компилятором Microsoft Visual C/C++.

Деструктор — это метод класса, использующийся обычно для освобождения памяти, выделенной из пула свободной памяти. Деструктор — также как и конструктор — имеет такое же имя, как и класс, в котором он описан; ему предшествует символ "тильда" (~). Деструкторы являются дополнениями конструкторов. Деструктор вызывается автоматически при использовании операции delete по отношению к указателю класса или в случае, когда программа выходит из области действия объекта класса. Деструкторы, в отличие от конструкторов, не могут иметь параметров и их нельзя перегружать. Они также создаются компилятором Microsoft Visual C/C++, если не определены явно.

#include <iostream>

using namespace std;

class coins

{

int number;

public:

coins() {cout << "Begin Conversion!\n";}

~coins() {cout << "\nFinished Conversion!\n";}

void get_cents(int);

int quarter_conversion(void);

};

Когда методы класса включены в функции, такое описание называется явным. Методы можно определять обычным образом (то есть после определения класса и перед функцией main


Дата добавления: 2015-12-08; просмотров: 75 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.008 сек.)