Члены класса. Инициализация членов класса

Данные-члены класса объявляются так же, как переменные и могут иметь любой тип, кроме самого класса, но могут быть указателями на него. Они не могут быть инициализированы в теле класса, их можно инициализировать с помощью конструктора класса.

Тело функции-члена может быть записано как в теле класса, так и вынесено за его пределы. Те функции-члены, которые записаны непосредственно в теле класса называют встраиваемыми. Преимущество встраиваемых функций-членов в том, что их использование повышает быстродействие программы, из-за того что они вставляются непосредственно в скомпилированную программу, а не вызываются как другие функции. Формат записи встраиваемой функции такой же как и для любой другой функции, только они записываются в теле класса.

Пример:

/*класс для хранения даты и времени*/

class TTime {

private: // спецификатор доступа

int year; //

int month; //

int day; // закрытые данные-члены

int hour; //

int minute; //

public: // спецификатор доступа

void GetTime (int &m, int &d, int &y, int &hr, int &min) //встраиваемая функция-член

{

m = month;

d = day;

y = year;

hr = hour;

min = minute;

}

void SetTime(int m, int d, int y, int hr, int min); //открытая функция-член

} firstTime, secondTime;

Для записи функций-членов за пределами класса используется следующий формат записи:

<тип> <имя_класса>:: <имя_функции> (<список_параметров>)

{

//тело_функции

}

где операция в виде двух двоеточий - это операция расширения области видимости.

Пример:

void TTime::SetTime(int m, int d, int y, int hr, int min)

{

month = m;

day = d;

year = y;

hour = hr;

minute = min;

}

Встраиваемые функции члены также могут быть вынесены за пределы класса и записаны представленным выше способом, но тогда перед типом функции должно стоять ключевое слово inline.

Пример:

inline void TTime::SetTime(int m, int d, int y, int hr, int min)

{

}

Для инициализации членов класса необходимо объявить объект данного класса и только после этого с помощью оператора “->”, для доступа по указателю, или оператора точка (.), для доступа по ссылке, присвоить его членам значения.

Пример:

class TTime {

private:

int year;

int month;

int day;

int hour;

int minute;

public:

void SetTime(int m, int d, int y, int hr, int min);

};

main()

{

TTime now; //объект типа TTime

TTime *tomorrow; //указатель на объект типа TTime

now.SetTime(4,15,2008,15,18); //обращение по ссылке

tomorrow->SetTime(4,16,2008,15,18); //обращение по указателю

cout << “Дата и время установлены”;

return 0;

}

void TTime::SetTime(int m, int d, int y, int hr, int min)

{

month = m;

day = d;

year = y;

hour = hr;

minute = min;

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: