Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 13
1

Конструктор копирование у наследника

18.12.2013, 22:12. Показов 2985. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Основной класс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class matrix
{
public:
    int N,M; // N - количество строк, M - количество столбцов матрицы
    int **pa; 
 
    
 
    matrix(int n,int m);
    ~matrix();
    matrix (const matrix &copy);
    
};
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
//Конструктор матрицы (Выделение динамической памяти)
matrix::matrix(int n,int m)
{
    pa=new int*[n];
    for (int i=0;i<n;i++)
        pa[i]=new int[m];
    N=n; //Количество строк в двумерном массиве
    M=m; //Количество столбцов в двумерном массиве
}
 
// Конструктор создания копии
matrix::matrix(const matrix &copy)
{
    this-> N = copy.N;
    this-> M = copy.M;
    this -> pa = new int *[this ->N];
    for (int i=0;i<this->N;i++)
        this -> pa[i] = new int [this->M];
    for (int i=0;i<this->N;i++)
        for (int j=0;j<this->M;j++)
            this->pa[i][j]=copy.pa[i][j];
 
}
 
//Деструктор двумерного массива (Удаление)
matrix::~matrix()
{
    if (this->pa)
    {
        for (int i=0;i<N;i++)
            delete[] pa[i];
        delete[] pa;
        cout<<"Программа закончила работу, результат программы занесен в файл вывода"<<endl;
    }
}
Класс-наследник

C++
1
2
3
4
5
6
7
8
9
class FindExer: public matrix
{
    
public:
    int **result;
    FindExer(int n,int m):matrix(n,m) {};
    FindExer(const matrix &copy):matrix(copy){//////////////};
    // destr
};
Не получается создать конструктор и деструктор копирования для int **result.
Помогите пожалуйста

Добавлено через 1 час 34 минуты


Добавлено через 2 часа 12 минут
Может кто помочь? Завтра сдавать работу...

Добавлено через 44 минуты
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2013, 22:12
Ответы с готовыми решениями:

Конструктор класса наследника
Я не могу понять свою ошибку к примеру если пишу так все нормально class one { public: ...

Не работает конструктор наследника класса
Есть класс: template &lt;class T&gt; class HashTable { HashTable(int _size) { size = _size; ...

Конструктор класса множественного наследника
Проблема в конструкторе класса множественного наследника #include &lt;iostream&gt; #include...

Сравнение класса наследника через конструктор с одним аргументом
#include &lt;iostream&gt; using namespace std; //////////////////////////////// class Counter {...

3
5 / 5 / 1
Регистрация: 17.12.2013
Сообщений: 10
19.12.2013, 00:03 2
меня немного смущает int **result; в паблике
в чем собственно проблема? я полагаю в конструкторе FindExer будет следующее
C++
1
2
3
4
5
6
FindExer(int n,int m):matrix(n,m) 
{
    result=new int*[n];
    for (int i=0;i<n;i++)
        result[i]=new int[m];
};
и соответственно конструктор копирования, то есть тебе нужно просто скопировать функцию копирования из класса предка, потому-что там точно такой же двумерный массив целых чисел, просто заменив pa на result и естественно убрав копирование элементов N и M
0
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 13
19.12.2013, 00:28  [ТС] 3
Спасибо большое
0
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
19.12.2013, 00:37 4
Мягко говоря, не совсем понял что вам требуется сделать с int **result
Могу предположить, что вы там хотите видеть матрицу, которая была создана в родительском классе. В таком случае могу вам предложить ввести в класс матрицы метод наподобие этого
C++
1
2
3
4
5
protected:
    int** getRawMatrix()
    {
         return pa;
    }
Соответственно вы можете вызывать данный метод в унаследовавших данный класс функциях
1
19.12.2013, 00:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.12.2013, 00:37
Помогаю со студенческими работами здесь

Конструктор копирование
Получил задание от преподавателя написать программу «Поезд» Условия такие программа предлагает...

Зачем возвращать конструктор копирование?
Добрый день. Первый вопрос в заголовке темы. Второй - где это можно применить. Спасибо. ...

Конструктор-копирование шаблона класса
Объясните пожалуйста, что я делаю не так.

Будет ли работать должным образом конструктор копирование с указателем?
class A { A() {} A(const A *); } То что этот код скомпилируется - сомнений нет. Вот...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru