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

Конструктор копирования - C++

25.11.2013, 22:21. Просмотров 263. Ответов 1
Метки нет (Все метки)

Ребята!! Вроде все получается, да только вот сделала конструктор копирования (А он мне, правда, нужен!) - и бух! программа ругается на объявление параметра (Matrix t). Почему-у? о_О!
Помогите, пожалуиста, разобраться.



#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <math.h>
using namespace std;

class Matrix { public:
int i, j, N, M;
int Mat[100][100];

Matrix() // Конструктор ввода матриц
{cout << "Vvedite razmer matrix=> Kol-vo strok: " ;
cin >> N;
cout << "Vvedite razmer matrix=> Kol-vo stolbtsov: " ;
cin >> M;

for (i=0; i < N; i++)
{
for (j=0; j < M; j++)
{
cout << "M["<< i <<"]["<< j <<"]=" ;
cin >> Mat[i][j];
}
}
}

Matrix( Matrix t)
{
N= t.N;
M= t.N;
for ( i=0; i<N; i++)
{for (j=0; j<M; j++)
Mat[i][j]= t.Mat[i][j];
}
}

Matrix( Matrix mat1, Matrix mat2) // Конструктор с 2 параметрами
{
N=mat1.N;
M=mat1.M;
}

void ShowMatrix()
{
for (i=0; i<N; i++)
{
for (j=0; j<M; j++)
{
cout << " M["<< i <<"]["<< j <<"] = " << Mat[i][j] ;
} cout << "\n";
}
}

Matrix Matrix::operator+(const Matrix &rhs) // +
{
Matrix result(*this);
for (size_t i = 0; i < N; i++)
{
for (size_t j = 0; j < M; j++)
{
result.Mat[i][j] += rhs.Mat[i][j];
}
}
return result;
}

Matrix Matrix::operator-(const Matrix &rhs) // -
{
Matrix result(*this);

for (size_t i = 0; i < N; ++i)
{
for (size_t j = 0; j < M; ++j)
result.Mat[i][j] -= rhs.Mat[i][j];
}

return result;}

Matrix Matrix::operator += (const Matrix &rhs) // +=
{
for (size_t i = 0; i < N; ++i)
{
for (size_t j = 0; j < M; ++j)
Mat[i][j] += rhs.Mat[i][j];
}

return *this;}

Matrix Matrix::operator -= (const Matrix &rhs) // -=
{
for (size_t i = 0; i < N; ++i)
{
for (size_t j = 0; j < M; ++j)
Mat[i][j] -= rhs.Mat[i][j];
}

return *this;}

//-----------------------------------
Matrix *create(int a)
{Matrix *x;
x=new Matrix[a];
return x;
}
//-----------------------------------

};


void main ()
{
Matrix m, m2, m3(m), slojenie(m,m2), vichitanie(m,m2);

cout << "\n 1 Matrix: \n"; m.ShowMatrix();
cout << "\n 2 Matrix: \n"; m2.ShowMatrix();
slojenie = m + m2;
cout << "\n SLOJENIE: \n"; slojenie.ShowMatrix();
vichitanie = m - m2;
cout << "\n VICHITANIE: \n"; vichitanie.ShowMatrix();
m3.ShowMatrix();

getch();
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2013, 22:21
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Конструктор копирования (C++):

Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве...

Конструктор класса, конструктор копирования запускается не тот который нужен
Есть такой конструктор: Neuron::Neuron(int iType_activation_funk) {...

Не могу правильно сделать конструктор и конструктор копирования и принадлежность точки с заданными координатами треугольнику
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include...

Конструктор инициализации, конструктор копирования, деструктор
Я сделал почти задание по перегрузке операторов. Осталось одно, тоесть три:...

Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор
Всем доброго времени суток! нужна ваша помощь! нужно создать класс вектор и...

Конструктор копирования
Доброго времени суток! Преподаватель попросил сделать конструктор копирования,...

1
MrGluck
Модератор
Эксперт CЭксперт С++
7980 / 4861 / 1422
Регистрация: 29.11.2010
Сообщений: 13,234
25.11.2013, 22:28 #2
Лучший ответ Сообщение было отмечено LeeZa как решение

Решение

Конструктор копирования имеет след. вид:
C++
1
2
3
4
5
Matrix(const Matrix &)
{
    // выделяем память
    // копируем
}
Оформляйте код в теги CPP
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2013, 22:28
Привет! Вот еще темы с решениями:

конструктор копирования
Доброго времени суток. Помогите пожалуйста. Мне нужно вызвать конструктор...

Конструктор копирования
Доброго времени суток! Написала класс Треугольная матрица. Не могу исправит...

Конструктор копирования
Ответьте пожалуйста какой необходим конструктор копирования для объекта класса...

Конструктор копирования
Всем привет. У меня такая проблема: есть некий класс, допустим Test: class...


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

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

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