12084

Классы и объекты в С++

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

Информатика, кибернетика и программирование

Отчёт по лабораторной работе №1 По дисциплине Программирование Тема: Классы и объекты в С Вариант №8 Задачи. 1. Определить пользовательский класс в соответствии с вариантом задания смотри приложение. 2. Определить в классе следующие конструкторы: без пар

Русский

2013-04-24

21.75 KB

103 чел.

Отчёт по лабораторной работе №1

По дисциплине «Программирование»

Тема: «Классы и объекты в С++»

Вариант №8

Задачи.

1. Определить пользовательский класс в соответствии с вариантом задания (смотри приложение).

2. Определить в классе следующие конструкторы: без параметров, с параметрами, копирования.

3. Определить в классе деструктор.

4. Определить в классе компоненты-функции для просмотра и установки полей данных.

5. Определить указатель на компоненту-функцию.

6. Определить указатель на экземпляр класса.

7. Написать демонстрационную программу, в которой создаются и разрушаются объекты пользовательского класса и каждый вызов конструктора и деструктора сопровождается выдачей соответствующего сообщения (какой объект какой конструктор или деструктор вызвал).

8. Показать в программе использование указателя на объект и указателя на компоненту-функцию.

Определение пользовательского класса с комментариями.

#ifndef Tovarh

#define Tovarh

class Tovar

{

char* name; // Название Товара

int kol; // Кол-во товара

float price; // Цена

public:

Tovar (); // Конструктор без параметров

Tovar (char*,int,float); // Конструктор с параметрами

Tovar (const Tovar&); // Конструктор копирования

~Tovar (); // Деструктор

char * GetName() ; // Функция получения имени

int GetKol(); // Функция получения кол-ва

float GetPrice(); // Функция получения цены

void SetName(char*); // Функция изменения имени

void SetKol(int); // Функция изменения кол-ва

void SetPrice(float); // Функция изменения цены

void Set(char*,int,float); // Функция изменения всех параметров

void Show(); // Функция показа всех параметров

};

#endif

Реализация конструкторов и деструктора.

Tovar::Tovar ()

{

setlocale (0,"");

cout<< "\nКонструктор без параметров вызван для объекта. " << this <<endl;

name = new char('\0'); // Выделяем память под \0

kol=0;price=0;

}

Tovar::Tovar (char* NAME,int KOL,float PRICE)

{

setlocale (0,"");

cout<< "\nКонструктор c параметрами вызван для объекта. " << this << endl;

name = new char [strlen(NAME)+1];

strcpy (name,NAME);

kol=KOL;

price=PRICE;

}

Tovar::Tovar (const Tovar& ob)

{

setlocale (0,"");

cout<< "\nКонструктор копирования вызван для объекта. " << this <<endl;

name = new char [strlen(ob.name)+1];

strcpy (name,ob.name);

kol = ob.kol;

price = ob.price;

}

Tovar::~Tovar ()

{

setlocale (0,"");

cout << "\nВызов деструктора. " << this << endl;

 delete name;

}

Фрагмент программы, показывающий использование указателя на функцию.

void (Tovar::*pf)(); // Инициализируем указатель

pf=&Tovar::Show; // Записываем адрес функции показа всех параметров

(zavoz[2].*pf)(); // Вызов функции Show через указатель

Программа.

void main ()

{

Tovar(); // Конструктор без параметров, инициализация переменых

 

Tovar one("Ноутбук",13,17500); // Конструктор с параметрами

Tovar two=one; // Конструктор копирования

two.Show(); // Получение все параметров

one.Set("Компьютер",15,20000); // Изменение все параметров

 one.GetName();

one.GetKol();

one.GetPrice();

Tovar thri=two;

thri.SetName ("Планшет");

thri.SetPrice (15000);

thri.Show();

Tovar zavoz[3]; // массив студентов размещается в статической памяти

 zavoz[0].Set("Флешки",50,250);

zavoz[0].Show();

zavoz[1].Set("Клавиатуры",23,880);

zavoz[1].Show();

zavoz[2].Set("Мышки",17,300);

 

 void (Tovar::*pf)();

 pf=&Tovar::Show; // Записываем адрес функции показа всех параметров

(zavoz[2].*pf)(); // Вызов функции Show через указатель

Tovar *z; // массив студентов размещается в динамической памяти

 z = new Tovar [3];

z[0].Set("Кулеры",30,150);

z[0].Show();

z[1].Set("USB Лампочки",30,100);

z[1].Show();

z[2].Set("Диски BD",30,150);

 

 (z[2].*pf)(); // Вызов функции Show через указатель

 delete []z; // Удаление массива из динамической памяти, если этого не сделать он останеться.

}


 

А также другие работы, которые могут Вас заинтересовать

76464. Осуществление и защита семейных прав 16.22 KB
  7 СК граждане вправе по своему усмотрению распоряжаться принадлежащими им правами если иное не установлено СК. Пределы осуществления семейных прав имеют свои ограничения. Так семейные права могут быть ограничены требованиями закона.
76465. Семейно-правовая ответственность (понятие и особенности) 17.48 KB
  Специфика семейно-правовой ответственности заключается в том что во-первых ее субъекты связаны уже возникшим семейным правоотношением во-вторых к ней не могут быть привлечены третьи лица не участвующие в данном правоотношении. Основания наступления семейно-правовой ответственности зависят от того какая сфера пострадавшего лица личная или имущественная подверглись воздействию в результате правонарушения. Семейное законодательство не содержит указания на формы вины но на практике они играют важную роль особенно при определении объема...
76466. Меры защиты в семейном праве и их отличие от семейно-правовой ответственности 16.31 KB
  Защита нарушенных или оспариваемых семейных прав происходит в судах в порядке искового производства взыскание алиментов раздел совместно нажитого супружеского имущества; защита охраняемых интересов происходит в порядке особого производства установление факта признания отцовства фактов регистрации рождения усыновления брака развода. В административном порядке защита семейных прав осуществляется путем обращения в государственные органы или к конкретному должностному лицу органы исполнительной власти органы опеки и...
76467. Понятие брака, условия и порядок его заключения 19.11 KB
  Основаниями для брака признаются правовые нормы а не моральные: брачный союз лишь определяет систему прав и обязанностей. Современный институт брака находится в состоянии трансформации. Заключение брака Брак заключается в государственных органах записи актов гражданского состояния по истечении месячного срока после подачи женихом и невестой совместного заявления.
76468. Прекращение брака. Основание, причины и мотивы развода 16.87 KB
  В случае смерти супруга или объявления судом одного из супругов умершим не требуется какого-либо специального оформления прекращения брака. В таких случаях брак считается прекращенным с момента смерти супруга или с момента вступления в законную силу решения суда об объявлении супруга умершим
76469. Расторжение брака в органах загса 17.21 KB
  Расторжение брака в органах загса по заявлению обоих супругов. 19 СК расторжение брака в органах загса по заявлению обоих супругов производится при наличии двух оснований: супруги выразили взаимное согласие на расторжение брака; супруги не имеют общих несовершеннолетних детей. Взаимное согласие супругов на расторжение брака выражается в их совместном письменном заявлении установленной формы в орган загса.
76470. Расторжение брака в судебном порядке 19.54 KB
  У супругов имеются общие несовершеннолетние дети кроме случаев когда один из супругов признан судом безвестно отсутствующим недееспособным или осужден за совершение преступления к лишению свободы на срок свыше трех лет; отсутствует согласие одного из супругов на расторжение брака; в один из супругов несмотря на отсутствие у него возражений уклоняется от расторжения брака в органе загса например отказывается подать совместное заявление. Рассмотрение дел о расторжении брака осуществляется судом в порядке искового...
76471. Последствия расторжения брака 16.57 KB
  При рассмотрении такого дела судья обязан изучить все стороны характеризующие личные качества родителей взаимоотношения родителей с ребенком интересы самого ребенка и его мнение если он достиг десятилетнего возраста. Также суд учитывает возраст ребенка его большая или меньшая симпатия к одному из родителей а также к другим членам семьи братья сестра. Не менее важны условия воспитания и обучения которые будут созданы для проживания ребенка и материальное положение одного из родителей хотя последний фактор не всегда является...
76472. Понятие недействительности брака и основания признания брака недействительным 15.31 KB
  С момента государственной регистрации заключения брака в органах загса. Основания для признания брака недействительным установлены в п. Заключение брака при отсутствии условий установленных законом для заключения брака: взаимного добровольного согласия лиц вступающих в брак и достижения ими брачного возраста если этот возраст не был снижен в порядке установленном законом ст.