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

Перегрузка оператора присваивания - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как создать структуру-список, поля которой — ссылка на такую же структуру http://www.cyberforum.ru/cpp-beginners/thread1212403.html
Суть вопроса в том, как создать структуру-список, поля которой - ссылка на сл. элемент(такую же структуру) и ссылка на объект, относящийся к любому из классов. Проще говоря - список из объектов, относящихся к разным классам.
C++ Правильно ли я реализовываю класс длинной арифметики? class LongLong { private: char * longNumber; int _size; public: LongLong(const char *number = NULL); LongLong(unsigned int); friend LongLong operator +(const LongLong &, const LongLong &); http://www.cyberforum.ru/cpp-beginners/thread1212383.html
Структура "Массив" C++
Определить количество каждой цифры в числе ( массив из трех чисел) . Нужно использовать структуру для сохранения элемента массива и количества разных чисел в нем. К сожалению в структурах я ничего не понимаю:cry:. Задачу сделала, но без использования структуры. Если кто то может , переделайте пожалуйста так, что бы была использована структура. Буду очень багодарна:) #include "stdafx.h"...
Определить скалярное произведение строки и столбца, где расположен максимальный "особый" элемент C++
Дан двумерный массив А(N,N) натуральных чисел. Элемент A(I,J) назовем особым, если оно является палиндромом, то есть одинаково читается слева - направо и наоборот. Определить скалярное произведение строки и столбца, где расположен максимальный особый элемент. И есть еще вторая задачка: Составить на языке С/С++ программу. Используя функции и режим меню, создать двоичный файл из...
C++ Создание консоли http://www.cyberforum.ru/cpp-beginners/thread1212354.html
подскажите код: менюшка: 1. вывести на экран 2. сделать тото. 3. выйти вопрос - как это реализуется в коде? чтоб меню появилось сразу, потом человек набрал пункт 1 и вывелось на экран то что просит? и соответственно если 2 - то выполнение такой то операции. спасибо.
C++ увеличиваем число M в 2 раза и выводим текущее значение пока M<100 увеличиваем число M в 2 раза и выводим текущее значение пока M<100 Помогите через цикл while полностью программу подробнее

Показать сообщение отдельно
nocl1p
37 / 22 / 10
Регистрация: 30.03.2012
Сообщений: 299
19.06.2014, 21:26  [ТС]     Перегрузка оператора присваивания
что не правильно? запускаю и ошибка вылетает как на предидущей картинке

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
template<typename TT>
class Matrix
{   
public:
//======================================================================================================
    Matrix<TT>(int Row, int Col)
    {
        RowCount = Row; ColCount = Col;
        Array = new TT *[RowCount];
        for (int index = 0; index < RowCount; index++)
            Array[index] = new TT [ColCount];
 
        int index1 = 0, index2 = 0;
        for(index1 = 0; index1 < RowCount; index1++)
            //for(index2 = 0; index2 < ColCount; index2++)
        {Array[index1][0] = 1; Array[index1][1] = 2; Array[index1][2] = 3; Array[index1][3] = 4;} 
    }
//======================================================================================================
    ~Matrix<TT>()
    {
        for(int index = 0; index < RowCount; index++)
            delete[] Array[index];
        delete[] Array;
        cout << "Destructor....";
        _getch();
    }
//======================================================================================================
    TT operator ()(int IND1, int IND2)
    {
        return Array[IND1][IND2];
    }
//======================================================================================================
    void SetIdenty()
    {
        if (RowCount == ColCount)
        {
            // Обнуляем все элементы массива
            int IND1, IND2;
            for (IND1 = 0; IND1 < RowCount; IND1++)
                for (IND2 = 0; IND2 < RowCount; IND2++)
                {
                    Array[IND1][IND2] = 0;
                    Array[IND1][IND1] = 1;
                }
        }
    }
//======================================================================================================
    void Transpose()
    {
        int newRowCount = ColCount, newColCount = RowCount;
        // Создаем вспомогательный массив
        TT **Arr = new TT *[newColCount];
        for (int i = 0; i < newColCount; i++)
            Arr[i] = new TT[newRowCount];
        // Присваиваем строки массива Array столбцам массива Arr
        for (int i = 0; i < RowCount; i++)
            for (int j = 0; j < ColCount; j++)
                Arr[j][i] = Array[i][j];
        // Освобождаем память Array
        for(int index = 0; index < RowCount; index++)
            delete[] Array[index];
        delete[] Array;
        // Присваиваем Arr
        Array = Arr;
        ColCount = newColCount;
        RowCount = newRowCount;
    }
//======================================================================================================
private:
    int RowCount, ColCount;
    TT **Array;
};
Добавлено через 1 час 29 минут
Цитата Сообщение от nmcf Посмотреть сообщение
Освобождаешь память, присваиваешь RowCount, ColCount из m, выделяешь по ним память, копируешь элементы.
Как выделить по ним память?
 
Текущее время: 00:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru