- •1. Компіляція і виконання програм в середовищі Windows
- •Void main(void) {
- •Void main(void) {
- •Void main
- •3. Виведення повідомлень на екран
- •Void main(void)
- •4. Програми зберігають інформацію в змінних
- •Void main(void)
- •Int test_score;
- •Int student_age, test_score, grade;
- •Void main(void)
- •Void main(void)
- •5. Виконання простих операцій
- •Void main(void)
- •6. Введення даних з клавіатури
- •Void main(void)
- •Int first, second; // Числа, введені з клавіатури
- •Void main(void)
- •7. Програма Приймає рішення
- •If (умова виконується)
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Int test_score;
- •8. Повторення одного або декількох операторів
- •Void main(void)
- •9. Функції
- •Void show_message(void)
- •Void main(void)
- •Void show_number(int value)
- •Void main(void)
- •Void show_big_and_little(int а, int b, int c)
- •Void main(void)
- •Void show_employee(int age, float salary)
- •Void main(void)
- •10. Прототипи функцій
- •Void main(void)
- •11. Зміна значень параметрів
- •Void cbange_values(int *a, int *b)
- •Void main(void)
- •12.Локальні змінні і ділянка видимості
- •Void some_function(void)
- •Int count;
- •Void sound_beeps(int beeps)
- •Void main(void)
- •13.Глобальні змінні
- •Void main(void)
- •Void first_change(void)
- •Void second_change(void)
- •Void main(void)
- •Void show_numbers(int number)
- •Void main(void)
- •14. Перезавантаження функцій
- •Int add_values(int а, int b)
- •Int add_values(int а, int b, int с)
- •Void main(void)
- •Void main(void)
- •Використовування посилань як параметРів
- •Void change_value(int &alias)
- •Void main(void)
- •Int number;
- •Void change_value(int &alias)
- •16. Зберігання значень в масивах
- •Int test_scores[100];
- •Int employee_age[100];
- •Void main(void)
- •Void main(void)
- •17. Передача масивів у функції
- •Void some_function(int array[], int number_of_elements);
- •Void show_array(int array[ ], int number_of_elements)
- •Void main(void)
- •18. Символьні рядки
- •Void main(void)
- •Int index;
- •19. Передача рядків у функції
- •Void show_string(char string[ ])
- •Void main (void)
- •Void show_string(char string[ ])
- •20. Зберігання зв'язаної інформації в структурах
- •Int office_number;
- •21. Структури і функції
- •Int office_number;
- •Void show_employee(employee worker)
- •Void main(void)
- •Void show_employee(void)
- •23. Визначення методів класу зовні класу
- •Void show_employee(void);
- •Void employee::show_employee(void);
- •Void main(void)
- •24. Конструктор
- •Void show_employee(void);
- •Int change_salary(float);
- •25. ДеструКтор
- •Void show_employee(void);
- •Int change_salary (float);
- •Void employee :: show_employee(void)
- •Void main(void)
- •26. Спадковість
- •Void show_employee (void);
- •Int stock_options;
- •Void show_manager(void);
- •Int stock_options;
- •Void main(void)
- •27. Множинна Спадковість
- •Void main(void)
- •Int processor, int speed, int ram) :
- •Int processor, int speed, int ram);
- •Void show_work_station(void);
- •Int processor, int speed, int ram) :
- •28. Приватні елементи і друзі
- •Void show_book(void);
- •Void main(void)
- •29. Використовування шаблонів функцій
- •Void main(void)
- •Void main(void)
- •30. Використовування шаблонів класів
- •Void main(void)
- •Void main(void)
- •Values.Show_array( );
- •Void main(void)
- •Void main(void)
- •Int size;
- •Void main(void)
- •Очищення пам'яті, якщо вона більше не потрібна
- •Void main(void)
- •Void main(void)
- •32. Керування вільною пам'яттю
- •Void end_program(void)
- •Void end_program(void)
- •Void main(void)
- •Створення власних операторів new і delete
- •Void main(void)
- •Void main(void)
- •33.Додаткові можливості cin і cout
- •Файл iostream.H
- •Використовування cout
- •Void main (void)
- •Void main(void)
- •Використовування символу-заповнювача
- •Void main(void)
- •Керування виведенням чисел з плаваючою крапкою
- •Void main(void)
- •Виведення і введення одного символу за один раз
- •Void main(void)
- •Void main(void)
- •Введення з клавіатури по одному символу за один раз
- •Void main(void)
- •Читання з клавіатури цілого рядка
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Читання з вхідного файлового потоку
- •Ifstream input_file("filename.Ext");
- •Void main(void)
- •Ifstream input_file("bookinfo.Dat");
- •Читання цілого рядка файлового введення
- •Void main(void)
- •Визначення кінця файлу
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Перевірка помилок при виконанні файлових операцій
- •Void main(void)
- •Закриття файлу, якщо він більше не потрібен
- •Керування відкриттям файлу
- •Ifstream output_file("filename.Ext", ios::app);
- •Ifstream output_file("filename.Ext", ios::out | ios::noreplace); виконання операцій читання і запису
- •Input_file.Read(buffer, sizeof(buffer));
- •Void main(void)
- •Void main(void)
- •Ifstream emp_file("employee.Dat");
- •35. Вбудовані функції і асемблерні коди
- •Void show_message(int count, char *message)
- •Void main(void)
- •Void main(void)
- •Використовування ключового слова inline
- •Inline int max(int а, int b)
- •Inline int min(int а, int b)
- •Void main(void)
- •Вбудовані функції і класи
- •Void show_employee(void)
- •Inline void employee::show_employee(void)
- •Використовування операторів мови асемблера
- •Void main(void)
- •36. Використання аргументів командного рядка
- •Void main(int argc, char *argv[])
- •Void main(int argc, char *argv[])
- •Void main(int argc, char *argv[])
- •Void main(int argc, char *argv[]) виконання циклу до тих пір поки argv he містить null
- •Void main(int argc, char *argv[])
- •Трактування argv як Вказівника
- •Void main(int argc, char **argv)
- •Void main(int argc, char **argv)
- •Аргументи командного рядка
- •Доступ до змінних середовища операційної системи
- •Void main(int argc, char *argv[], char *env[])
- •Void main(int argc, char *argv[], char *env[])
- •37. Використовування констант і макрокоманд
- •Використовування іменованих констант
- •Void main(void)
- •Void main(void)
- •Використовування іменованих констант для спрощення зміни тексту програми
- •Void main(void)
- •Int test_scores[50];
- •Int student;
- •Void main(void)
- •Int test_scores[class_size];
- •Int student;
- •Заміна виразів макрокомандами
- •Void main(void)
- •Void main(void)
- •Чим відрізняються макрокоманди від функцій ?
- •Використовування макрокоманд надає велику гнучкість програмам
- •Void main(void)
- •38. Поліморфізм
- •Void main(void)
- •Int amount;
- •Int amount;
- •Void main(void)
- •Int amount;
- •Void main(void)
- •Література
Void main(void)
{
for (int i = 1; i <= 10; i++)
cout << "Для" << i << "куб рівний " << ((i)*(i)*(i)) << endl;
}
Зверніть увагу, що попередня макрокоманда помістила параметр х всередину круглих дужок, використавши запис ((x)*(x)*(x)) замість (х*х*x). При створенні макрокоманд, щоб бути впевненим, що C++ потрактує ваші вирази саме так, як ви хочете, потрібно враховувати пріоритет виконання арифметичних операцій і використовувати круглі дужки, як показано вище.
Чим відрізняються макрокоманди від функцій ?
Макрокоманда не є функцією. Якщо використовувати функцію, то у виконувану програму поміщається тільки одна копія операторів функції. Кожного разу при виклику функції компілятор поміщає параметри в стек і потім виконує перехід до тіла функції. Після завершення функції програма видаляє параметри зі стека і переходить назад до оператора, що слідує безпосередньо за викликом функції.
У випадку з макрокомандою препроцесор замінює у тексті програми кожне посилання на макрокоманду відповідним виразом макрокоманди. Наприклад, якщо попередня програма використовує макрокоманду CUBE в 100 різних місцях, препроцесор підставить вираз макрокоманди 100 разів. Використовуючи макрокоманди, ви уникаєте витрат на виклик функції (витрат на розміщення параметрів в стек і видалення їх звідти, а також витрат на виконання переходу до операторів функції і повернення від них). Це відбувається завдяки тому, що у випадку з макрокомандою препроцесор вбудовує в тіло програми відповідні оператори. Проте, оскільки препроцесор замінює кожне посилання на макрокоманду відповідним виразом, макрокоманди збільшують розмір виконуваної програми.
Використовування макрокоманд надає велику гнучкість програмам
Макрокоманди широко використовуються з метою спрощення і поліпшення сприйняття тексту самої програми. MACDELAY.CPP ілюструє, крім того, і гнучкість макрокоманд. Програма допомагає також уявити, як препроцесор замінює ім'я макрокоманди відповідними операторами:
_
#define delay(x) { \
cout << "Затримка на " << x << endl; \
for(long int i=0; i < x; i++) \
; \
}
Void main(void)
{
delay(100000L);
delay(200000L);
delay(300000L);
}
В даному випадку, оскільки визначення макрокоманди займає декілька рядків, то в кінці кожного рядка, що має продовження, поміщають один символ зворотного слеша (\). Коли препроцесор зустріне посилання на макрокоманду, він замінить це посилання операторами, які з'являються у визначенні макрокоманди.
38. Поліморфізм
Загалом поліморфізм є здатністю об'єкту змінювати форму під час виконання програми. C++ спрощує створення поліморфних об'єктів використовуючи віртуальні (virtual) функції.
Припустимо, що програма PHONEONE.CPP використовує клас phone для створення об'єкту-телефону [1]:
class phone {
public:
void dial (char *number) { cout << "набір номера "
<< number << endl; }
void answer(void) { cout << "Очікування відповіді" << endl; }
void hangup(void){ cout << "Дзвінок виконано-покласти слухавку"
<< endl; }
void ring(void) { cout << "дзвінок, дзвінок, дзвінок"
<< endl; }
phone(char <<*number) { strcpy(phone::number, number); };
private:
char number[13];
