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

Поле класса - динамический массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как записать 2x^4-3x^3+4x^2-5x-6 http://www.cyberforum.ru/cpp-beginners/thread750281.html
Задача состоит в том, что бы записать уравнение 2x^4-3x^3+4x^2-5x-6 используя только операции умножение, вычисление, добавление и каждое из них можно использовать только четыре раза.
C++ Что за оператор GO TO NEXT? Правильное ли утверждение: "действие оператора continue; в приведенных ниже примерах эквивалентно действию оператора go to next;". a)while (E) { S; ... continue; ... S; next: ; } b) do { S; ... continue; ... S; } while (E); next: ; ... . . . . . . Вот я не пойму что за оператор go to next? Кто может дать какую-нибудь инфу. http://www.cyberforum.ru/cpp-beginners/thread750260.html
C++ Вывод данных из файла в массив
Здравствуйте Уважаемые дамы и господа. Гуглил, читал но что-то никак не разберусь. Имеется тхт файлик Пример входного файла: 122235739687398670326509273096523096709239652386492036509 83475689723698723987569823759827385789237582378957239857893275.71 779077967857.8 Как загнать сие в массив тоесть загнать все подряд с пробелами разделающими строчки. Был бы благодарен ответам, а лучше...
Библиотеки С/С++ для цифровой обработки сигналов C++
Доброго времени суток! Хотел узнать, быть может кто-нибудь знает библиотеку/библиотеки С/С++ для цифровой обработки сигналов. Чтобы была возможность с их помощью реализовать следующие функции: корреляция, линейная и циклическая свертка, прямое/обратное преобразование Фурье. Сам пока искал нашел вот это: http://sourceforge.net/projects/kissfft/ Но быть может кто-нибудь знает библиотеки получше,...
C++ Запись в собственного класса бинарный файл собственного http://www.cyberforum.ru/cpp-beginners/thread750228.html
есть Свой тип данных дробь. Надо реализовать запись и загрузку в\из бинарного файла. #ifndef RATION_H #define RATION_H #include <iostream> class Fraction { private: int *rational; void GetMixedView(); // метод преобразования дроби в смешанный вид
C++ Удаление Узла бинарного дерева Добрый вечер. Имеем Бинарное дерево поиска. При удалении некоторого узла . возникают три случая. Один из случаев , наличие у удаляемого узла обоих дочерних узлов. При удалении такого узла . необходимо заменять его на самый левый узел правого поддерева или же самый правый узел левого поддерева. Вопрос в следующем . как рекурсивно найти самый левый . правого поддерева. и его родителя. ... подробнее

Показать сообщение отдельно
OdessaNA
 Аватар для OdessaNA
19 / 19 / 0
Регистрация: 10.01.2011
Сообщений: 240
01.01.2013, 18:47  [ТС]     Поле класса - динамический массив


Добавлено через 9 минут
Спасибо, друзья, за помощь!
Учел Ваши подсказки и замечания, и переписал код:
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
#include <iostream>
#include <conio.h>
using namespace std;
 
class DinArr
{
    int *array;
    int size;
public:
    DinArr();
    ~DinArr() { delete [] array; }
    DinArr(const DinArr&); //
    DinArr operator = (const DinArr&); //
    DinArr& operator ++ (); //
    DinArr& operator -- (); //
    void Add( int );
    void Show();
};
 
DinArr :: DinArr()
{
    size = 0;
    array = new int [size + 1];
}
 
DinArr :: DinArr(const DinArr& obj)
{
    size = obj.size;
 
    array = new int [size];
    for(int i = 0; i < size; ++i)
        array[i] = obj.array[i];
}
 
DinArr DinArr :: operator = (const DinArr& obj)
{
    size = obj.size;
 
    delete [] array;
 
    array = new int [size];
    for(int i = 0; i < size; ++i)
        array[i] = obj.array[i];
 
    return *this;
}
 
DinArr& DinArr :: operator ++ ()
{
 
    int *temp = new int[size + 1];
    for(int i = 0; i < size; ++i)
        temp[i] = array[i];
 
    delete [] array;
    array = temp;
 
    ++size;
    array[size-1] = 0;
 
    return *this;
}
 
DinArr& DinArr :: operator -- ()
{
    --size;
 
    int *temp = new int [size];
    for(int i = 0; i < size; ++i)
        temp[i] = array[i];
 
    delete [] array;
    array = temp;
 
    return *this;
}
 
void DinArr :: Add( int x )
{
        int *temp = new int [size + 1];
        for(int i = 0; i < size; ++i)
            temp[i] = array[i];
        
        delete [] array;
        array = temp;
 
        array[size] = x;
        ++size;
}
 
void DinArr :: Show()
{
    for(int i = 0; i < size; ++i)
        cout << array[i] << ' ';
    cout << endl;
}
 
void main()
{
    DinArr obj, obj2;
    
    int i = 0;
 
    while(i < 10)
        obj.Add(++i);
 
    obj.Show();
 
    obj2 = obj;
    ++obj2;
    --obj2;
 
    obj2.Show();
    
    _getch();
}
У меня остались некоторые сомнения по конструктору копирования. Подскажите, пожалуйста, он правильно реализован, или в нём есть ошибка?
 
Текущее время: 06:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru