В приведенной ниже программе класс
#include
using namespace std;
// Создание класса queue.
class queue {
int q[100];
int sloc, rloc;
public:
void init();
void qput(int i);
int qget();
};
// Инициализация класса queue.
void queue::init()
{
rloc = sloc = 0;
}
// Занесение в очередь целочисленного значения.
void queue::qput(int i)
{
if(sloc==100) {
cout << "Очередь заполнена.\n";
return;
}
sloc++;
q[sloc] = i;
}
// Извлечение из очереди целочисленного значения.
int queue::qget()
{
if(rloc == sloc) {
cout << "Очередь пуста.\n";
return 0;
}
rloc++;
return q[rloc];
}
int main()
{
queue a, b; // Создание двух объектов класса queue.
а.init();
b.init();
a.qput(10);
b.qput(19);
a.qput(20);
b.qput(1);
cout << "Содержимое очереди a: ";
cout << a.qget() << " ";
cout << a.qget() << "\n";
cout << "Содержимое очереди b: ";
cout << b.qget() << " ";
cout << b.qget() << "\n";
return 0;
}
При выполнении эта программа генерирует такие результаты.
Содержимое очереди а: 10 20
Содержимое очереди b: 19 1
Не забывайте, что закрытые члены класса доступны только функциям, которые являются членами этого класса. Например, такую инструкцию
а.rloc = 0;
нельзя включить в функцию main() нашей программы.
Все классы объявляются подобно приведенному выше классу
class имя_класса {
закрытые данные и функции
public:
открытые данные и функции
} список_объектов;
Здесь элемент
Получение доступа к членам класса — вот что часто приводит в замешательство начинающих программистов. Поэтому остановимся на этой теме подробнее. Итак, рассмотрим следующий простой класс.
// Демонстрация доступа к членам класса.
#include
using namespace std;
class myclass {
int a; // закрытые данные
public:
int b; // открытые данные
void setab(int i); // открытые функции
int geta();
void reset();
};
void myclass::setab(int i)
{
a = i; // прямое обращение к переменной а
b = i*i; // прямое обращение к переменной b
}
int myclass::geta()
{
return a; // прямое обращение к переменной а
}
void myclass::reset()
{
// Прямой вызов функции setab()
setab(0); // для уже известного объекта.
}
int main()
{
myclass ob;
ob.setab(5); // Устанавливаем члены данных ob.a и ob.b.
cout << "Объект ob после вызова функции setab(5): ";
cout << ob.geta() << ' ';
cout << ob.b; // К члену b можно получить прямой доступ, поскольку он является public-членом.
cout << '\n';
ob.b = 20; // Член b можно установить напрямую, поскольку он является public-членом.
cout << "Объект ob после установки члена ob.b=20: ";
cout << ob.geta() <<' ';
cout << ob.b;
cout << '\n';
ob.reset();