Initial commit

This commit is contained in:
2022-04-28 04:34:45 +03:00
commit 4c0cdb2f71
30 changed files with 1218 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
#include <iostream>
using namespace std;
void unchangingFunc(int passedVar) {
passedVar = 5; // Значение меняется только внутри функции
cout << "Новое значение passedVar внутри unchangingFunc: " << passedVar << endl;
}
void swap(int &num1, int &num2) {
/**
& перед именем в списке аргументов означет, что передастся ссылка на память,
с которой можно работать как со значением (обратное преобразование не нужно)
*/
int temp;
temp = num1;
num1 = num2;
num2 = temp;
}
void add_lists( int first[], int second[], int total[], int length ) {
/**
При передаче массива значения в изначальном массиве также меняются
Это поведение можно предотвратить используя const:
void add_lists( const int first[], const int second[], int total[], int length )
При таком объявлении, попытка изменить значения первых двух массивов внутри функции
вызовет ошибку
*/
for( int i = 0; i < length; i++ ) {
total[i] = first[i] + second[i];
};
}
/*
Перегрузка функций позволяет создать несколько функций с одинаковыми именами,
но разными параметрами или количеством параметров
*/
void my_func(int first_arg) {
cout << "My func called with one int argument" << endl;
}
void my_func(double first_arg) {
cout << "My func called with one double argument" << endl;
}
void my_func(int first_arg, int second_arg) {
cout << "My func called with two int arguments" << endl;
}
int main() {
int myVar = 3;
unchangingFunc(myVar); // Внутри main значение myVar остаётся таким же
cout << "Новое значение myVar после unchangingFunc: " << myVar << endl;
int myOtherVar = 9;
// При вызове функции, принимающей ссылки, дополнительные преобразования не нужны
swap(myVar, myOtherVar);
cout << "После смены мест значение myVar=" << myVar << ", myOtherVar=" << myOtherVar << endl;
// Вызов перегруженный функций
my_func(4);
my_func(double(4));
my_func(3, 5);
return 0;
}