Форум программистов, компьютерный форум CyberForum.ru

Написать демонстрационную программу, в которой создаются и разрушаются объекты пользовательского класса - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Serega_094
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
25.12.2013, 19:54     Написать демонстрационную программу, в которой создаются и разрушаются объекты пользовательского класса #1
Написать программу, в которой создаются и разрушаются объекты, определенного пользователем класса. Выполнить исследование вызовов конструкторов и деструкторов.
Порядок выполнения работы:
Определить пользовательский класс в соответствии с вариантом задания.
Определить в классе следующие конструкторы: без параметров, с параметрами, копирования.
Определить в классе деструктор.
Определить в классе компоненты-функции для просмотра и установки полей данных.
Определить указатель на компоненту-функцию.
Определить указатель на экземпляр класса.
Написать демонстрационную программу, в которой создаются и разрушаются объекты пользовательского класса и каждый вызов конструктора и деструктора сопровождается выдачей соответствующего сообщения (какой объект какой конструктор или деструктор вызвал).
Показать в программе использование указателя на объект и указателя на компоненту-функцию.

Добавлено через 25 секунд
вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>
 
using namespace std;
 
class product {
public:
    product ();// конструктор
    product (char *, char *); // конструктор с параметрами
    product (const product&); // копирующий конструктор
    ~product();//деструктор
    void print_product(void);
    void set(char *n,char *p, int k);
private: char name[50];
        char product_id[30];
        int kolichestvo;
};
product::product ()//конструктор
{strcpy(product::name, name);
strcpy(product::product_id, product_id);
if (kolichestvo <2000)
    product::kolichestvo = kolichestvo;
else //недопустимое количество
    product::kolichestvo = 0;
}
product::product (char *name, char *product_id)//с параметрами
{strcpy(product::name, name);
strcpy(product::product_id, product_id);
do{cout<<"Введите количество для "<<name<<" меньше 2000 шт.:";
cin>>product::kolichestvo;
} while (kolichestvo>=2000);
}
product::product (const product &s){//конструктор копирования
    this->name=s.name;
    this->product_id=s.product_id;
    this->kolichestvo=s.kolichestvo;
}
void set(char *n,char *p, int k){ //установка полей данных
    name=n;
    product_id=p;
    kolichestvo=k;
}
product::~product()//деструктор
{
    cout << "Уничтожение объекта для " << name << endl;
}
void product::print_product(void)//функция печати
{  
   cout <<" Имя: "<<name<<endl;
   cout <<" Шифр: "<<product_id<<endl;
   cout <<" Количество: "<<kolichestvo<<endl<<endl;
}
void main (void)
{setlocale(0,"russian");
product chocolate("Snickers","snick12",1500);
product juice("Rich","rich74", 1400);
product cookie("Юбилейное", "UBL4572");
chocolate.print_product();
juice.print_product();
cookie.print_product();
_getch();
}
Добавлено через 57 минут
помогите кто знает..

Добавлено через 2 часа 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// лаба 2 ооп.cpp: главный файл проекта.
 
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>
 
using namespace std;
 
class product {
public:
    product(); //Конструктор
    product (char *name, char *product_id, int kolichstvo);//конструктор с параметрами
    product (product &s);//конструктор копирования
    ~product(); //деструктор
    void print_product();//функция вывода
    void input_product();//функция ввода
private: char name[50];
        char product_id[30];
        int kolichestvo;
};
 
product::product()//конструктор
{cout<"Вызов конструктоа ";
this->name[0]=NULL; this->product_id[0]=NULL; this->kolichestvo=0;
}
product::product (char *name, char *product_id, int kolichstvo)//конструктор с параметрами
{strcpy(product::name, name);
strcpy(product::product_id, product_id);
if (kolichestvo <2000)
    product::kolichestvo = kolichestvo;
else //недопустимое количество
    product::kolichestvo = 0;
}
 
product::product ( product &s){//конструктор копирования
    this->name=s.name;
    this->product_id=s.product_id;
    this->kolichestvo=s.kolichestvo;
}
 
product::~product()//деструктор
{
    cout << "Уничтожение объекта для " << name << endl;
}
void product::print_product()//функция печати
{  
   cout <<" Имя: "<<name<<endl;
   cout <<" Шифр: "<<product_id<<endl;
   cout <<" Количество: "<<kolichestvo<<endl<<endl;
}
void product::input_product()
{
    cout<<"Введите данные: ";
    cout<<"Имя: ";
    cin>>name;
    cout <<"Шифр: ";
    cin>>product_id;
    cout <<"Количество: ";
    cin>>kolichestvo;
}
 
product c1;
product c2("Snickers","snick12",1500);
product c3[3]={product("Rich","rich74", 1400),product("Юбилейное","UBL4572",694), product("Добрый","dbr", 1154)};
product c4 =c2;
void main (void)
{setlocale(0,"russian");
product *c =new product[2];
c1.input_product();
c1.print_product();
c3[1].print_product();
c[0]=c3[2]; c[1]=c4;
c[1].print_product();
void (product::*pf)();
pf=&product::print_product;
c3[0].*pf();
_getch();
}
проверьте плиз..не знаю дальше как..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2013, 19:54     Написать демонстрационную программу, в которой создаются и разрушаются объекты пользовательского класса
Посмотрите здесь:

пример пользовательского класса C++
C++ Запись пользовательского класса
C++ Почему создаются новые объекты?
Помогите написать учебно-демонстрационную прогу по работе с комплексными числами C++
Написать программу на языке Си в которой C++
C++ Определение классов, их реализацию, демонстрационную программу поместить в отдельные файлы.
Классы: Не создаются объекты класса Apple C++
C++ Классы и объекты в С++, компонента класса и экземпляр класса

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 07:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru