С++ для начинающих Определение методов класса вне класса

Сайт не является учебником по программированию. Это только небольшой авторский сборник информации в помощь начинающим программистам.

В двух предыдущих статьях (С++ для начинающих Классы Первое знакомство и С++ для начинающих Конструктор Класса) функции и конструктор определялись внутри класса. Другими словами- «методы класса были расписаны внутри класса». Такой подход не всегда удобен, поэтому в C++ существует альтернативный вариант. В альтернативном варианте вовнутрь класса размещается прототип функции, а вне класса пишется сама функция. Чтобы было понятнее, пишу пример.

Код C++. Определение функции (метода) вне класса

Теперь пора пояснить для тех кому очень нужно. Эта программа аналогична такой:

Только выполнена через класс с использованием конструктора. Так сделано потому что в моем представлении этот примитив вполне может дать понять принцип построения простых классов. Внутри класса описываются детали класса и прототипы методов. Были прописаны прототипы двух методов (Конструктор и функция show_a). Дальше эти методы были прописаны вне класса. Между плюсовыми комментариями как раз идет написание этих обоих методов. Разные классы могут использовать методы с одинаковыми именами, из-за этого в С++ при определении метода класса вне класса используют оператор глобального разрешения (::)
Сначала был прописан конструктор.

  • Конструктор есть особый метод и всегда имеет тоже имя, что у своего класса.
  • Конструктор никогда не возвращает значений, даже void недопустим, поэтому в начале строчки Class::MyClass() отсутствует тип. При этом конструктор может принимать параметры (в скобки можно записывать).

После описания конструктора была описана функция show_a(); Так как функция всегда возвращает значение, то вначале обязательно указывать возвращаемый тип. В примере этот тип void (void show_a();)
Сама конструкция определения методов вне классов

Так как класс сам по себе бесполезен, для него был создан объект. Объект представляет из себя переменную — экземпляр класса. В примере это переменная obj1. В функции main через объект obj1 запускается конструктор класса MyClass, внутри конструктора прописано предложение ввести значение и это значение присваивается в a из класса MyClass. После того как объект был собран, выполняется сама функция main. Очищается экран, выполняется метод класса show_a. В этом методе прописано только одно действие — вывод a на экран. Потом происходит ожидание нажатия клавиши Enter, очистка экрана и выход из программы

Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

3 комментария: С++ для начинающих Определение методов класса вне класса

  • Некто говорит:

    может это такой синтаксис в другой среде.
    Но в Visual Studio это работает не так.
    Мы типо выводим то, что выводится. Корректно будет так

    ведь метод show_a() и так выводит данные.
    Если нам нужно использовать cout, в Main(), то тогда следует изменить void на int для метода show_a().
    //void вообще означает, что эта функция не возвращает значений.
    и изменить метод на

    вот тогда использовать

    корректно.

    Автор сайта отвечает:
    спасибо за поправку

  • Мария говорит:

    Спасибо!

  • Даниил говорит:

    Перестал читать, после того, как увидел транслит

Добавить комментарий

Ваш e-mail не будет опубликован.

Поиск

 
     

Яндекс.Метрика

НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

Демотиватор идеальной клавиатуры 21 века

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок