Глава 18. Классы-контейнеры_______________________________429
Более интересен пример массива объектов класса, определенного пользователем. В этой главе мы будем использовать класс STUDENT, определяемый в листинге 18.1.
// Все функции-члены для краткости реализованы как встраиваемые
#include <cstring.h>
class STUDENT
{
public:
STUDENT()
: id(""), grade(-l.O) 0
STUDENT (const string &id_, float grade_=-1..0) : id(id_), grade(grade_) {) STUDENT(const STUDENT Sstudent)
{ *this = student; } -STUDENT()
{)
STUDENTS operator=(const STUDENT ?rhs) (
if (this != srhs) { // He копировать себя. id = rhs.id;
grade = rhs.grade;
) return *this;
}
int operator™(const STUDENT srhs) { return (id ^ rhs. id);
) const strings Getld() const
{ return id; ) float GetGrade() const
( return grade; } void Setid(string &id_)
{ id = id_; } void SetGrade(float grade_)
( grade = grade ; } private:
string id;
float grade;
};
Класс STUDENT содержит конструктор по умолчанию, конструктор копий, операцию присваивания и операцию ==. Чтобы иметь возможность исполь-