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