{
--top;
return s[top];
}
Запись void stack::reset() говорит, что функция reset() принадлежит структуре stack. Благодаря оператору"::" мы можем иметь одинаковые имена функций для разных типов структур.
В объектно-ориентированном программировании существует такое понятие как механизм сокрытия данных. Давайте возьмем случай когда вы покупаете магнитофон, то вам доступны только те его части которые необходимы для работы с ним (кнопочки, экранчики и т. д.), такие части как провода, магнитные головки и т. д. вам не доступны. В структурах и классах (позже мы узнаем что это такое) сокрытие данных осуществляется с помощью ключевых слов public (открытый), private (закрытый) и protected (защищенный). Закрытые члены в программе недоступны, а открытые наоборот доступны. Внутри структуры после ключевого слова private, все члены ограничены доступом. Закрытыми членами могут пользоваться только функции-члены этой структуры. Открытые члены могут использоваться и вне структуры.
Напишем структуру, характеризующую квартиру. В ней будут такие члены как number (номер квартиры), count_room (количество комнат), floor (этаж), area (площадь), price (цена), status (приватизирована или нет), эти члены мы сделаем закрытыми, а для доступа к ним напишем функции.
struct kwart
{
public:
int GetNumber();
int GetCountRoom ();
int GetFloor();
int GetArea();
int GetPrice();
bool GetStatus();
void SetNumber(int);
void SetCountRoom(int);
void SetFloor(int);
void SetArea(int);
void SetPrice(int);
void SetStatus(bool);
private:
int number;
int count_room;
int floor;
int area;
int price;
bool status;
};
int kwart::GetNumber()
{
return number;
}
int kwart::GetCountRoom()
{
return count_room;
}
int kwart::GetFloor()
{
return floor; int kwart::GetArea()
{
return area; int kwart::GetPrice()
{
return price;
}
bool kwart::GetStatus()
{
return status;
}
void kwart::SetNumber(int num)
{
number = num;
void kwart::SetCountRoom(int count)
}
count_room = count;
}
void kwart::SetFloor(int num)
{
floor = num;
}
void kwart::SetArea(int num)
{
area = num;
void kwart::SetPrice(int num)
{
price = num;
}
void kwart::SetStatus(bool stat)
{
status = stat;
}
Теперь если мы напишем:
kwart kw;
int i = kw.area;
это будет ошибкой, так как переменная area — закрытая, если мы хотим присвоить переменной i ее значение, то нужно воспользоваться функцией GetArea():
kwart kw;
kw.SetArea(20);
int i = kw.GetArea();
А вот в этом фрагменте уже все правильно. Сначала мы переменной area с по мощью функции SetArea() присваиваем значение 20, а потом переменной i присваиваем значение area.
ПОКА ВСЕ.
СПРАВОЧНИК
Команды DOS
От редакции: Нет, это не устарело. Команды DOS по-прежнему входят во все операционные системы Microsoft. Время от времени их приходится использовать, иногда по необходимости, иногда в целях удобства. Но дело не в этом. Дело в том, что компьютеры морально стареют. Сегодня трудно найти человека, работающего на IBM-XT или на продвинутом IBM-АТ. Тогда как для целей автоматизации эксперимента, в рамках домашней лаборатории (если вы, конечно, не автоматизируете ТОКАМАК), они подходят как нельзя лучше. Эти компьютеры уже фактически бесплатны, потребляют минимум электроэнергии, надежны (ненадежные уже покоятся на свалке) и могут быть использованы вместо микроконтроллеров. Для работы они зачастую даже не нуждаются в жестком диске, достаточно одной-двух дискеток. Двадцать лет назад они использовались для управления достаточно сложными установками и производствами. И до сих пор работают в этом качестве. Более того, ответственную установку лучше не доверять быстродействующему, а значит и сильно усложненному компьютеру, с процессором, который в любой момент может полететь, из-за выхода из строя китайского вентилятора. И уж работающему под WindowsXP, тем более. Ну, а общение с IBM-XT, как вы, наверное, помните, осуществлялось как раз с помощью команд операционной системы DOS.