Определение методов.

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

Для определения функции вне определения класса ваша программа должна предварять определение функции именем класса и оператором глобального разрешения, как показано ниже:

return_type class_name::function_name(parameters)

{ // Операторы }

Создание объекта в памяти на примере С++

При компиляции программы память компьютера разбивается на четыре области, содержащие код программы, глобальные данные, стек и динамически распределяемую память ( иногда ее называют heap – куча). Heap – это свободная память, с которой можно работать с помощью функций new и delete. Для new аргументом является выражение, определяющее размер выделяемого объекта, а возвращаемое значение – это указатель на начало :

int *person=new Person; где Person это класс. А person это указатель на объект типа Person;

Если память не может быть выделена, то оператор new возвращает указатель NULL . После каждой операции выделения памяти обязательна проверка указателя на NULL:

if(array==NULL)

printf(“memory allocation error.”);

else

{

// действия при правильном выделении памяти

}

Выделенная динамически память автоматически не освобождается при выходе из блока или по завершению программы. Для ее освобождения обязательно необходимо выполнить команду delete[] имя_объекта;

Был продемонстрирован динамический способ выделения памяти, для объекта. Статический же способ гораздо проще. В нем не надо заботиться об удалении объекта, и ошибок утечек памяти возникающих вследствие этого.

Person person;

Где «Person» класс, а «person» объект класса.

Стандартные потоки ввода вывода

Стандартные средства ввода-вывода были рассчитаны исключительно на

небольшое число встроенных типов данных. Однако, в нетривиальных программах на С++ есть много пользовательских типов данных, поэтому необходимо предоставить возможность ввода-вывода значений таких типов.

Основная задача потоковых средств ввода-вывода - это процесс преобразования объектов определенного типа в последовательность символов и наоборот. Существуют и другие схемы ввода-вывода, но указанная является основной, и если считать символ просто набором битов, игнорируя его естественную связь с алфавитом, то многие схемы двоичного ввода-вывода можно свести к ней. Поэтому программистская суть задачи сводится к описанию связи между объектом определенного типа и бестиповой (что

существенно) строкой.

Укажем, что существует много независимых реализаций потоковой библиотеки ввода-вывода и набор средств, описанных здесь, будет только подмножеством средств, имеющихся в вашей библиотеке. Заголовочный файл <iostream.h> определяет интерфейс потоковой библиотеки. В ранних версиях потоковой библиотеки использовался файл <stream.h>. Если существуют оба файла, <iostream.h> определяет полный набор средств, а <stream.h> определяет подмножество, которое

совместимо с ранними, менее богатыми потоковыми библиотеками.

Согласно тех задания был выполнен проект main, рабата была выполена в среде Microsoft Visual Studio C++ .NET,

Исходный код предоставлен в файле Main.cpp и main.h

педоставлен откомпилированный файл main.exe

Соседние файлы в папке LB1