Г. Барнаул

Лабораторная работа №1

по дисциплине «Объектно-ориентированное программирование»

Выполнено по учебно-методическому пособию "Объектно-ориентированное программирование", Катаев М.Ю.

Выполнил:

Студент ФДО ТУСУР

Гр. з-443-а

Специальности 230700

Краснов Сергей Игоревич

20.10.14

г. Барнаул


Тема: Классы. Открытые и закрытые уровни доступа. Конструкторы. Инициализация данных объекта. Определение методов. Создание объекта в памяти. Стандартные потоки ввода-вывода.

Задание:

1. В среде программирования на С++ создайте консольный проект с именем LAB1 в каталоге LAB1.

2. В проекте создайте файлы main.h (заголовочный файл) и main.cpp (файл исходного кода).

3. В файле main.h определите с помощью ключевого слова class объект Person.

Данные объекта:

Номер человека (целый тип)

ФИО (символьный массив)

Пол (логический тип: 0-муж., 1-жен.)

Возраст (вещественный тип)

Пусть данные имеют закрытый уровень доступа (private).

4. Опишите конструктор объекта, аргументы которого будут инициализировать все данные объекта.

5. Опишите конструктор объекта по умолчанию (без аргументов), проинициализировав все данные.

6. Опишите в объекте функцию void Print() с открытым уровнем доступа (public), которая будет выводить данные на экран.

7. Откройте файл main.cpp. С помощью директивы #include включите в файл main.cpp заголовочные файлы <stdlib.h>, <string.h>, <iostream.h>, а также ваш заголовочный файл "Main.h".

8. Ниже определите конструктор объекта, инициализирующий все данные объекта значениями аргументов. В теле конструктора используйте функцию strcpy(стр1, стр2) для копирования строки имени человека (ФИО).

9. Затем определите функцию void Person::Print(). В теле функции для вывода данных используйте стандартный поток вывода cout << значение1 << значение2 << … << endl;

10. Ниже напишите главную функцию программы int main(). Внутри ее создайте объект Person, указав все значения данных объекта. Выведите данные объекта на экран, вызвав функцию Print.

11. Затем создайте динамический объект Person с помощью обычного конструктора и оператора new. Выведите данные объекта на экран. Удалите динамический объект из памяти с помощью оператора delete.

12. Напишите функцию ввода данных в объект с клавиатуры void Person::Input(). В теле функции для ввода данных используйте стандартный поток ввода cin >> значение1 >> значение2 >> …;

13. Затем в теле функции main создайте объект Person с помощью конструктора по умолчанию и введите данные в объект с клавиатуры, вызвав функцию Input. Выведите данные объекта на экран.


Теория

Класс представляет собой главное инструментальное средство C++ для объектно-ориентированного программирования.

Описание класса С++ начинается с ключевого слова class. Тело класса состоит из определений членов и спецификаторов доступа – ключевых слов public, private и protected. К тем членам, которые перечислены после public, можно обращаться из любого места программы, а к тем, которые объявлены после private, могут обращаться только функции-члены данного класса.

Чтобы упростить процесс инициализации элементов данных класса, C++ использует специальную функцию, называемую конструктором, которая запускается для каждого создаваемого вами объекта. Подобным образом C++ обеспечивает функцию, называемую деструктором, которая запускается при уничтожении объекта.

· Конструктор представляет собой метод класса, который облегчает инициализацию элементов данных класса.

· Конструктор имеет такое же имя, как и класс.

· Конструктор не имеет возвращаемого значения.

· Каждый раз, когда программа создает переменную класса, C++ вызывает конструктор класса, если конструктор существует.

· Многие объекты могут распределять память для хранения информации;

· Деструктор имеет такое же имя, как и класс, за исключением того, что его имя предваряется символом тильды (~).

· Деструктор не имеет возвращаемого значения.

Классы C++ позволяют группировать данные объекта и функции объекта (методы), которые оперируют с этими данными, в одной переменной. Есть две возможности определения методов объекта. Первая состоит в том, что можно включить весь код функции внутрь определения класса. Несмотря на то, что включение кода метода в определение класса может представляться удобным, однако, когда классы становятся сложнее и включают несколько методов, операторы функций могут вносить беспорядок в определение классов. Таким образом, многие программы определяют операторы функции вне класса. В определение класса программа должна включать прототип функции, который указывает имя функции, тип возвращаемого значения и типы параметров.

Имеются 4 стандартных предопределенных потока, предназначеных для:

· cin - стандартного ввода;

· cout - стандартного вывода;

· cerr - стандартного вывода ошибок;

· clog - полностью буферизованного вывода ошибок.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: