![]() Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Тип возвращаемого функцией значения
Тип возвращаемого функцией значения бывает встроенным, как int или double, составным, как int& или double*, или определенным пользователем – перечислением или классом. Можно также использовать специальное ключевое слово void, которое говорит о том, что функция не возвращает никакого значения: #include < string> #include < vector> class Date { /* определение */ }; bool look_up(int *, int);double calc(double); int count(const string &, char); Date& calendar(const char); void sum(vector< int> &, int); Однако функция или встроенный массив не могут быть типом возвращаемого значения. Следующий пример ошибочен: // массив не может быть типом возвращаемого значенияint[10] foo_bar();Но можно вернуть указатель на первый элемент массива: // правильно: указатель на первый элемент массиваint *foo_bar();(Размер массива должен быть известен вызывающей программе.) Функция может возвращать типы классов, в частности контейнеры. Например: // правильно: возвращается список символовlist< char> foo_bar();(Этот подход не очень эффективен. Обсуждение типа возвращаемого значения см. в разделе 7.4.) Тип возвращаемого функцией значения должен быть явно указан. Приведенный ниже код вызывает ошибку компиляции: // ошибка: пропущен тип возвращаемого значенияconst is_equa1(vector< int> vl, vector< int> v2);В предыдущих версиях С++ в подобных случаях считалось, что функция возвращает значение типа int. Стандарт С++ отменил это соглашение. Правильное объявление is_equal() выглядит так: // правильно: тип возвращаемого значения указанconst bool is_equa1(vector< int> vl, vector< int> v2);
Правила перегрузки операторов: § Нельзя создать новый знак оператора, можно использовать лишь существующие. § Невозможно изменить приоритет операторов. § Нельзя изменять количество операндов в операторе. Для унарных операций (unary operation) операндом должен быть класс, для бинарных операций (binary operation) хотя бы один операнд должен быть классом. § Оператор индексации [ ] рассматривается как бинарный оператор. § Оператор вызова функции () рассматривается как бинарный оператор. § Оператор доступа к члену класса через указатель на объект этого класса → рассматривается как унарный оператор. § Оператор присваивания = не наследуется в производных классах, но может быть повторно определен в них. § Операторная функция, которая переопределяет постфиксную форму записи операторов инкремента и декремента, использует фиктивный параметр типа int как признак отличия от префиксной формы записи этих операторов. Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок. — Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта. — Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы). — SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание. SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение § Идентичность оператора инкремент ++ с оператором сложения с замещением += теряется, если она не задана переопределением этих операторов для класса. То же относится к операторам декремент -- и вычитание с замещением -=. § Операторная функция не может иметь параметров, заданных по умолчанию. Операторные функции-члены класса Операторная функция-член класса для перегрузки унарных операторов имеет следующий формат: Тип_функции имя_класса:: operator знак_оператора()
|