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

Как правильно сделать методы создания и удаления объектов в классах SymbString и DecString - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести строки, где есть слова, начинающиеся на букву а http://www.cyberforum.ru/cpp-beginners/thread1241915.html
#include <iostream> #include <fstream> using namespace std; int main(void) { setlocale (0,""); ifstream Fin; ofstream Fout; int p,len; string s,s1;
C++ Как на физическом уровне работает компоновщик в приведенном случае Всем привет! Уважаемые форумчане объясните мне, как, на физическом уровне, работает компоновщик в этом случае: //файл Class.h class Test { public: Test(); ~Test(); }; http://www.cyberforum.ru/cpp-beginners/thread1241893.html
C++ Конечные автоматы и грамматики - разобрать код
Доброе утро!Добрые люди сделали программу построения конечных автоматов по регулярным грамматикам.Она рабочая,просто я не могу разобраться в некоторых деталях. Процедуры void parse_a(char* a) void parse_b(char* b) они отвечают за построение автомата? В структуре buf,gramar,automata,rule я более менее разобрался,а вот в структурах nt и t не могу понять для чего они.Терминалы или...
C++ Различное поведение функции которая копирует строки с char* t и char t[]
столкнулся с ситуацией которую не могу объяснить пишем функцию которая копирует одну строку в другую: void strstr(char* t, char* t2) { int i=0, j=0;
C++ Найти ошибку в пирамидальной сортировке http://www.cyberforum.ru/cpp-beginners/thread1241816.html
Здравствуйте! Подскажите, пожалуйста, где ошибка. Спасибо за помощь! #include<iostream> #include<stdlib.h> #include<time.h> using namespace std; void repair(long array, long n, long i);
C++ Посоветуйте литературу для изучения языка Посоветуйте подробнее

Показать сообщение отдельно
ando
0 / 0 / 0
Регистрация: 13.08.2014
Сообщений: 15

Как правильно сделать методы создания и удаления объектов в классах SymbString и DecString - C++

13.08.2014, 11:52. Просмотров 337. Ответов 0
Метки (Все метки)

Задача:
Написать программу, демонстрирующую работу с объектами двух типов: SymbString и DecString,
для чего создать систему соответствующих классов. Каждый объект должен иметь
идентификатор (в виде произвольной строки символов) и одно или несколько полей
для хранения состояния объекта (один класс является потомком другого).
Клиенту (функции main) должны быть доступны следующие основные операции
(методы): создать объект, удалить объект, показать значение объекта и прочие
дополнительные операции (зависят от варианта). Операции по созданию и удалению
объектов инкапсулировать в классе Factory., Предусмотреть меню, позволяющее
продемонстрировать заданные операции.
При необходимости в разрабатываемые классы добавляются дополнительные
методы (например, конструктор копирования, операция присваивания и т. п.)
для обеспечения надлежащего функционирования этих классов.
Где:
SymbString - Символьная строка (произвольная строка символов)
DecString - Десятичная строка (изображение десятичного числа)
Только для DecString:
ShowBin() - Показать изображение двоичного значения объекта
ShowOct() - Показать изображение восьмеричного значения объекта
ShowHex() - Показать изображение шестнадцатеричного значения объекта
Как правильно сделать методы создания и удаления объектов в этом коде?

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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
 
class Factory
{
    protected:
        string value;
 
    public: 
        Factory() {value = "";}
        long ShowBin();
        long ShowOct();
        string ShowHex();
    private:
        Factory(string a) { value = a; }
};
 
class SymbString : public Factory
{
    public:
        SymbString() { value = ""; }
        SymbString(string sym) { value = sym; };
};
 
class DecString : public Factory
{
    public:
        DecString() { value = ""; }
        DecString(string dec) { value = dec; };
};
 
long Factory::ShowBin() {
    char mem[30];
    itoa(atoi(value.c_str()), mem, 2);
    return atoi(mem);
}
 
long Factory::ShowOct() {
    char mem[30];
 
    itoa(atoi(value.c_str()), mem, 8);
    return atoi(mem);
}
string Factory::ShowHex() {
    char mem[30];
    itoa(atoi(value.c_str()), mem, 16);
    return (const char*) strupr(mem);
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
// подготовка
 
    SymbString symb;
    DecString decs;
    string sym, dec;
 
// меню
    int exit = 0;
    do {
    int q = 0;
    cout << endl << endl << "Выберите действие: "
         << endl << "1. Создать объект типа SymbString"
         << endl << "2. Создать объект типа DecString"
         << endl << "3. Удалить объект типа SymbString"
         << endl << "4. Удалить объект типа DecString"
         << endl << "5. ShowBin для DecString"
         << endl << "6. ShowOct для DecString"
         << endl << "7. ShowHex для DecString"
         << endl << "8. Выход" 
         << endl << "-> ";
    cin >> q;
 
 
    switch(q) {
    case 1: 
        cout << endl << endl << "Введите значение: ";
        cin >> sym;
        symb = SymbString(sym);
        cout << "Объект создан.";
            break;
    case 2: 
        cout << endl << endl << "Введите значение: ";
        cin >> dec;
        decs = DecString(dec);
        cout << "Объект создан.";
            break;
    case 3: 
        cout << endl << endl;
 
        cout << "Объект удален.";
            break;
    case 4: 
        cout << endl << endl;
 
        cout << "Объект удален.";
            break;
    case 5: 
        cout << endl << endl
            << "Двоичное представление:" << endl << "\t" << decs.ShowBin();
            break;
    case 6: 
        cout << endl << endl 
            << "Восьмиричное представление: " << endl << "\t" << decs.ShowOct();
            break;
    case 7: 
        cout << endl << endl  
            << "Шеснадцатиричное представление: " << endl << "\t" << decs.ShowHex();
            break;
    
    case 8: exit = 1; break;
    }
        } while (exit == 0);
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru