Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Описание член-функций





Член-функции могут быть внешними и встраиваемыми. Если тело функции приведено внутри описания класса, то такая функция будет неявно встраиваемой.

Пример. В классе date неявно встраиваемые функции

set(), get(), next(), print().

Если определение член-функции вынесено за пределы описания класса и этому описанию не предшествует слово inline, то функция является внешней.

Если член-функция определяется вне описания класса, имя функции в заголовке определения должно быть уточнено именем класса с помощью операции «::» следующим образом:

Имя_класса::имя_функции.

Пример.

Определение внешней член-функции increase:

void date:: increase() {...}

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

Если при определении функции используется ключевое слово inline, то такая функция будет явно встраиваемой. Функция член, определенная (а не просто описанная) в описании класса, считается inline. Это значит что в функциях нет никаких вызовов функций кроме тех, которые используются для реализации операций вывода! Другими словами, нет никаких затрат времени выполнения, которые стоит принимать во внимание при разработке класса. Любое, даже самое маленькое действие, можно задать эффективно. Это утверждение снимает аргумент, который чаще всего приводят в пользу открытых членов данных.

Функцию член можно также описать как inline вне описания класса.

Пример.

class date

{int month, day, year;

public:

void set(int, int, int);

void get(int*, int*, int*);

void next();

void print();

}; //date

inline date::print()

{cout<<day<<"."<<month<<"."<<year;

}

При определении член-функций класса доступ к другим членам этого класса производится просто по имени без использования операции разрешения доступа «::».

При определении класса, также как и при определении структуры, память не выделяется. Для выделения памяти под объект класса должна быть объявлена переменная класса.

Пример.

data now, tomorrow;

Date: 2016-05-13; view: 313; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию