SEO продвижение сайтов

Функции в С++

В С++ есть стандартные и собственные функции. Стандартные функции описаны в библиотеках. Реализацию собственных функций описывают самостоятельно. Имеет вид: тип имяФункции(тип аргумент-1, тип аргумент-1 и тд.) {тело функции}. Вызывают функцию так: имяФункции(1,2);

Стандартные функции

Стандартные функции - это уже написанные функции со своим алгоритмом, их только вызывают, указав если нужно аргументы.

int a = max(2, 3);//3 – выбирает большее
int b = pow(2, 3);//8 – 2 в степени 3
cout << a << " и " << b << endl;//3 и 8

Собственные функции

Алгоритм собственной функции нужно описать в теле функции.

#include <iostream>//Подключаем cin и cout и др.
using namespace std;//Пространство имён

void f1(string n)//Функция f1
{
cout << "Привет, " << n << endl;
}

int main()
{
setlocale(0,"");//Кириллица

f1("Мир!");//Вызываем функцию f1

system("pause");//Задержка
return 0;//Возвращаем числовое значение
}

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

#include <iostream>//Подключаем cin и cout и др.
using namespace std;//Пространство имён

int sum(int a,int b)
{
return a+b;//Суммируем
}

int main()
{
setlocale(0,"");//Кириллица

cout << sum(2,3) << endl;//5

system("pause");//Задержка
return 0;//Возвращаем числовое значение
}

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

...
int b=5;

int sum(int a)
{
return a+b;//Суммируем
}
...

В аргументе & (ссылки)

Если в аргументе (между типом и именем) указать &, то передаваемая переменная после выполнения функции тоже поменяет значение.

#include <iostream>//Подключаем cin и cout и др.
using namespace std;//Пространство имён

void f(int &b)
{
b+=10;//b=b+10;
}

int main()
{
int a=5;
cout << a << endl;//5
f(a);//5+10
cout << a << endl;//15

system("pause");//Задержка
return 0;//Возвращаем числовое значение
}

Если хотим изменить глобальное значение переменной, передаваемой в качестве аргумента, передаём переменную и впереди ставим амперсанд - &. Мы, как бы передаем не значение переменной, а ссылку на неё.

Примечание: int sum(int &a) или можно так int sum(int& a).

Прототипирование функций

Описание функции должно быть выше (по коду), чем обращение к ней, так как программа её просто НЕ видит. В таких случаях используют прототипирование функций - размещение прототипа выше по коду. Прототип представляет собой: тип имяФункции(тип Арг.); без тела. Можно даже не указывать имена аргументов.

Пример передачи в функцию указателя* на массив

#include <iostream>//Подключаем cin и cout и др.
using namespace std;//Пространство имён

//void f1(int* arr,int n);//можно и так...
void f1(int*,int);//Прототипирование функции

int main()
{
setlocale(0,"");//Кириллица

int arr[]={1,2,3,4,88};//Массив
int size=sizeof(arr)/sizeof(int);//Размер массива //можно и так...
//int size=sizeof(arr)/sizeof(arr[0]);//Размер массива

f1(arr,size);//можно и так...
//int *mass=arr;//УКАЗАТЕЛЬ на arr
//f1(mass,size);//Аргументы: указатель на массив, размер массива

system("pause");//Команда задержки экрана
return 0;
}

void f1(int* arr,int n)
{
cout << "Элементов в массиве: " << n << "\n\n";

for (int i=0;i<n;i++)
cout << arr[i] << "\t";

cout << endl;
}

Можно указать значение аргумента по умолчанию.

...
void f1(int* arr,int n=8)
...

Автор: Алехин Геннадий (10.12.2019)

Ошибки в тексте выделить и Ctrl+Enter


Расскажи о нас друзьям

Web-технологии

Подключение к MySQL в PHP

Примеры кода:

    
    //Это данные для подключения к MySQL
    $host='localhost'; // адрес сервера 
    $user='root';      // Login
    $pass='';          // Пароль
    $base='sasha';     // Имя базы данных<>

    echo '<h2>У вас PHP '.phpversion()."версия</h2>\n";
Подробнее...

Интерфейсы и трейты в PHP

Интерфейсы в ООП PHP

Интерфейсы (interface) - это класс, в котором все методы являются абстрактными (abstract) и открытыми (public). В интерфейсе ООП PHP можно задать задать только имена методов и их параметры, а реализованы они обязаны быть в расширяемых ими классах.

Для реализации интерфейса мы используем ключевое слово implements. Класс может реализовать более одного интерфейса, которые разделяются запятыми. Как и классы, интерфейс может содержать константы, которые запрещено переопределять.

Трейты в ООП PHP

Трейты (trait) - это механизм обеспечения повторного использования кода в PHP с учетом одиночного наследования. Трейт отчасти реализует множественное наследование, позволяя разработчику повторно использовать наборы методов свободно, в нескольких независимых классах.

Трейт похож на класс, но создать экземпляр трейта невозможно. Он предназначен для группирования функционала, который потом используется в разных классах с помощью директивы use. Нужные для использования в классе трейты можно указать через запятую.

Код примера:

Подробнее...

Шаблоны проектирования в PHP - паттерны

Шаблон проектирования или паттерн (англ. design pattern) - оптимальный и оригинальный подход в решении типичных, частовстречающихся задач. Эти подходы, приёмы имеют свои названия и используются почти во всех объектно-ориентированных языках программирования.

Паттерны можно классифицировать по назначению (цель, результат) и по тому, к чему обычно применяется к объектам или к классам.

  • Поведенческие (behavioral)
    • цепочка обязанностей (Chain of Responsibility);
    • команда (Command);
    • итератор (Iterator);
    • посредник (Mediator);
    • хранитель (Memento);
    • наблюдатель (Observer);
    • посетитель (Visitor);
    • стратегия (Strategy);
    • состояние (State);
    • шаблонный метод (Template Method).
  • Порождающие (creational)
    • простая фабрика (Simple Factory);
    • фабричный метод (Factory Method);
    • абстрактная фабрика (Abstract Factory);
    • строитель (Builder);
    • прототип (Prototype);
    • одиночка (Singleton).
  • Структурные (structural)
    • адаптер (Adapter);
    • мост (Bridge);
    • компоновщик (Composite);
    • декоратор (Decorator);
    • фасад (Facade);
    • приспособленец (Flyweight);
    • заместитель (Proxy).
Подробнее...
Интересные статьи

Стишки-депрессяшки

Стишки-депрессяшки

У меня нет попы

у меня нет тить

я должна работать

чтобы как то жить

©

В камасутре много

интересных поз

жаль у нас с женою

остеохондроз

©

Надо же приснится

всякая херня

прямо на работе

среди бела дня

Подробнее...

Почему или резонные вопросы

Почему или резонные вопросы

Хотель бы получить ответы на такие вопросы:

  1. Почему современные технологии одновременно позволяют производить банки для пива, которые не разлагаются на свалке за 100 лет, и кузова автомобилей, которые гниют за 3-4 года?
  2. Почему лимонный сок сделан из концентрата, а средство для мытья посуды – из настоящего лимона?
  3. Почему белая нитка, которой соединены новые носки, всегда оказывается прочнее, чем нитки, из которых сделаны сами носки?
Подробнее...

Детские загадки для взрослых

murzilka m

*Загадки, которые были опубликованы в журнале "Мурзилка" 30 лет назад!!! Сегодня они не для детей точно: ))*

1. Чтобы спереди погладить, нужно сзади полизать. (Почтовая марка)

2. Кругом волоса, посредине колбаса. (Кукуруза)

3. Сверху черно внутри красно, как засунешь так прекрасно. (Галоши)

Подробнее...

Оставить заявку

Закрыть
Заполните фрму и отправьте нам заяку
Заполните все обязательные поля*
captcha
Перезагрузить