Глава 18. Классы-контейнеры_______________________________429

Более интересен пример массива объектов класса, определенного пользователем. В этой главе мы будем использовать класс STUDENT, определяемый в листинге 18.1.

h04291.jpg

// Все функции-члены для краткости реализованы как встраиваемые

#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 содержит конструктор по умолчанию, конструктор копий, операцию присваивания и операцию ==. Чтобы иметь возможность исполь-