Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/40: Рейтинг темы: голосов - 40, средняя оценка - 4.95
 Аватар для yaraslove
4 / 4 / 1
Регистрация: 28.01.2014
Сообщений: 15

Классы и объекты в С++, компонента класса и экземпляр класса

19.04.2015, 09:53. Показов 7347. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вариант 8.
ИЗДЕЛИЕ
наименование– char*
шифр– char*
тип упаковки– char*
количество– int

1. Определить пользовательский класс в соответствии с вариантом задания.
2. Определить в классе следующие конструкторы: без параметров, с параметрами, копирования.
3. Определить в классе деструктор.
4. Определить в классе компоненты-функции для просмотра и установки полей данных.
5. Определить указатель на компоненту-функцию.
6. Определить указатель на экземпляр класса.
7. Написать демонстрационную программу, в которой создаются и разрушаются объекты пользовательского класса и каждый вызов конструктора и деструктора сопровождается выдачей соответствующего сообщения (какой объект, какой конструктор или деструктор вызвал).
8. Показать в программе использование указателя на объект и указателя на компоненту-функцию.

Проблемы возникают в 5, 6 и 8 пунктах, не могу понять что такое компонента-класса и экземпляр класса. Помогите реализовать именно эти пункты на уже сложившейся программе.

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
80
81
82
83
#include <iostream>
#include <string>
using namespace std;
 
class PRODUCT
{   // Изделие
 
    char *Name;         // Наименование
    char *Kod;          // Шифр
    char *Package;      // Тип упаковки
    int Count;          // Количество
    public:     
// конструктор без параметров
    PRODUCT() 
    {   cout << " Конструктор без параметров " << endl; 
    Name=new char(sizeof(char));      
    Kod=new char(sizeof(char));
    Package=new char(sizeof(char));
    Count=0;            
    };  
// конструктор с параметрами
    PRODUCT(char *N,char *K,char *P,int C)
    {   cout << " Конструктор c параметром " << endl; 
    Name = new char [strlen(N)+10];
    strcpy (Name,N);
    Kod = new char [strlen(K)+10];
    strcpy (Kod,K);
    Package = new char [strlen(P)+10];
    strcpy (Package,P);
    Count=C;
    }; 
//конструктор копирования
    PRODUCT(const PRODUCT &student)
    {   cout << " Конструктор копирования " << endl; }; 
// деструктор
    ~PRODUCT()
    {   cout << " Деструктор" << endl; };
 
    // компоненты-функции для просмотра(получения)
    char *GetName() {return Name;}; 
    char *GetKod(){return Kod;}; 
    char *GetPackage(){return Package;}; 
    int GetCount() {return Count;}; 
    // и установки полей данных
    void SetName(char*N)    { Name = N;}; 
    void SetKod(char*K) {Kod=K;}; 
    void SetPackage(char*P) {Package=P;}; 
    void SetCount(int C)    {Count=C;}; 
 
    void Set(char *N,char *K,char *P,int C)
    {
        Name=N; Kod=K;  Package=P;  Count=C;
    }; 
 
    void Show()
    {
        cout << endl;
        cout << "Наименование - " << Name << endl;
        cout << "Шифр - " << Kod << endl;
        cout << "Тип упаковки - " << Package << endl;
        cout << "Количество - " << Count << endl;
        cout << endl;
    } 
};
 
void main()
{
    setlocale(0,"");
    PRODUCT Chips;
 
    Chips.Set("Chips","F23B","Bag",6);   
    Chips.SetKod("F23C");
    Chips.Show();
    
    PRODUCT Lolip("Lolip","4E5A","Bag",16);
    Lolip.Set("Lolip","234E","Bag",89); 
    Lolip.Show();
 
 
    PRODUCT Holy=Lolip;   
    system("pause");
 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.04.2015, 09:53
Ответы с готовыми решениями:

Создать экземпляр одного класса в Main, и передать его в экземпляр другого класса
Добрый день. Подскажите пожалуйста. есть несколько классов-файлов в одном пакете. class one class two class main... Нужно...

Классы: Не создаются объекты класса Apple
Includes.h #include &lt;stdlib.h&gt; #include &lt;gl\glut.h&gt; #include &lt;math.h&gt; #include&lt;stdio.h&gt; #include&lt;time.h&gt; #include&lt;stdio.h&gt; ...

Классы: объекты вспомогательных классов должны использоваться в качестве полей основного класса
объясните, пожалуйста, как это можно реализовать: Один класс является основным, остальные — вспомогательные. Вспомогательные классы...

2
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
19.04.2015, 10:21
Chips у тебя экземпляр класса. Указатель на класс PRODUCT *
Указатель на функцию:
C++
1
void (PRODUCT::* f)(int) = &PRODUCT::SetCount;
Функции типа SetName() не верно реализованы, нужно strcpy() использовать как в конструкторе.
1
47 / 21 / 11
Регистрация: 01.11.2013
Сообщений: 255
19.04.2015, 10:28
Если я правильно понял то указатель на экземпляр класса это
C++
1
PRODUCT */*Название продукта*/= new PRODUCT;
Добавлено через 54 секунды
Пока писал уже дали ответ
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.04.2015, 10:28
Помогаю со студенческими работами здесь

Создать экземпляр метода класса или доступ к методу из экземпляра класса
Всем доброго времени суток!) Уже месяца как 2 не сишарпил и подзабыл...собственно задача такая: Создать отдельный экземпляр класса для...

Как получить ссылку на текущий экземпляр класса внутри этого класса?
Как? Чтобы отрабатывал деструктор! и в нем можно было поиметь этот this ... Идея в том, что пишу оболочку под некоторую существующую...

Экземпляр класса как входные данные метода другого класса
Можно ли в качестве входных данных метода передать экземпляр метода другого класса? Если да, то как?

Создать экземпляр класса без явного указания членов класса
Если у меня есть два конструктора, один из которых по умолчанию, а второй явный. Я почему-то не могу создать экземпляр класса без явного...

Создание указателя типа базового класса на экземпляр производного класса
Добрый день! Иногда видел коды, где создавался указатель типа базового класса на объект класса - наследника, для чего это может применяться?


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru