Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Blekzet
3 / 3 / 0
Регистрация: 21.12.2015
Сообщений: 184
1

Разработка основы класса

03.12.2016, 17:53. Просмотров 320. Ответов 0
Метки нет (Все метки)

Разработать структуру элементов данных класса в виде динамической структуры данных (динамический массив, список, массив указателей). Разработать:

· конструкторы для различных типов входных данных (без параметров, параметр-строка, параметр-массив), конструктор копирования (объект из объекта) и деструктор;

· методы вывода и ввода содержимого объекта в поток (на экран), в текстовую строку (из строки);

· получения ссылки на внутренние данные объекта (например, на коэффициент матрицы), либо чтение/запись отдельных компонент объекта.

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

Наговнокодил пока вот такое:
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
#include <iostream>
#include <windows.h>
#include <fstream>
 
using namespace std;
 
class Fractions {
private:
    int numerator,
        denominator,
        whole;
public:
    Fractions() {
        numerator = 0;
        denominator = 1;
        whole = 0;
        cout << "Конструктор без параметров сработал!" << endl;
    }
    Fractions(char str[]) {
        cout << "Конструктор с параметром - строка, сработал!" << endl;
    }
    Fractions(int arr[]) {
        whole = arr[0];
        numerator = arr[1];
        denominator = arr[2];
        cout << "Конструктор с параметром - массив, сработал!" << endl;
    }
    Fractions(const Fractions &obj) {
        cout << "Конструктор копирования сработал!" << endl;
    }
    ~Fractions() {
        cout << "Деструктор сработал!" << endl;
 
    }
    void getDataInFile() {
        ofstream fout("Вывод.txt");
        fout << "Целое = " << whole << endl;
        fout << "Делимое = "<< numerator << endl;
        fout << "Делитель = "<< denominator << endl;
        fout.close();
    }
    void getDataInConsole(){
        cout << "Целое = " << whole << endl;
        cout << "Делимое = "<< numerator << endl;
        cout << "Делитель = "<< denominator << endl;
    }
    void setDataFromFile(){
        char str[100];
        ifstream fin("Ввод.txt");
        fin >> str;
        cout << str << endl;
    }
    void setDataFromConsole(){
 
    }
};
int main() {
    int a[3] = {21, 1, 2};
    char b[100];
    setlocale(LC_ALL,"rus");
    Fractions obj1;
    obj1.setDataFromFile();
    system("pause");
    return 0;
}
Но честно говоря, не знаю что делать дальше...
Из основных вопросов такие:
1) Нужно ли для каждого конструктора (с разными параметрами) отдельно создавать функцию считывания из файла/консоли или есть какой-то более правильный способ?
2)Ну и вот это, мне вообще не понятно:
В конструкторе и деструкторе предусмотреть трассировку - вывод адреса текущего объекта и его содержимого. Проследить последовательность вызова конструкторов и деструкторов при определении глобальных, локальных и динамических объектов, а также их массивов, при передаче объекта в виде формального параметра по значению и возврате его по значению в качестве результата...
Во всех конструкторах или только в определенном; как этот деструктор правильно написать; Что за глобальные, локальные и динамические объекты, да еще и массив из объектов... как это сделать...
Прошу помочь, если можно, то напишите как можно более простым языком (есть некоторые трудности в чтении текста)
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2016, 17:53
Ответы с готовыми решениями:

Разработка основы класса "Знаковое целое произвольной длины"
мне нужно разработать структуру класса,по данному заданию: Целые произвольной длинны со знаком на...

ООП Создание основы класса
Здравствуйте, получил задание, но немного недопонимаю как это сделать, с чего начать. Помогите...

Разработка класса
Разработать класс описывающий множество точек на плоскости, определить для экземпляров класса...

Разработка класса
Разработайте класс объектов типа «текстовые файлы на жестком диске, которые способны отображать...

Разработка класса Time
Разработать класс с именем Time содержащий три поля int для хранения часов,минут и секунд. Один из...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2016, 17:53

Разработка класса строка
Люди, всем доброго времени суток... кому не трудно. Помогите написать программу: Разработать класс...

Разработка класса контейнера
День добрый. В общем у меня есть программа, программный код приведу ниже. Класс Очередь...

Разработка класса Tdrob
Здравствуйте, уважаемые форумчане! Помогите с С++. Необходимо разработать класс Tdrob в короткий...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.