Студопедия

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

Разделы сайта

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






  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Тип возвращаемого функцией значения






    Тип возвращаемого функцией значения бывает встроенным, как 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 как признак отличия от префиксной формы записи этих операторов.

    § Идентичность оператора инкремент ++ с оператором сложения с замеще­нием += теряется, если она не задана переопределением этих операторов для класса. То же относится к операторам декремент -- и вычитание с за­мещением -=.

    § Операторная функция не может иметь параметров, заданных по умолчанию.

    Операторные функции-члены класса

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

    Тип_функции имя_класса:: operator знак_оператора()






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.