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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
LeeZa
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 43
#1

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

25.11.2013, 22:21. Просмотров 234. Ответов 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();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2013, 22:21     Конструктор копирования
Посмотрите здесь:

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

Конструктор копирования - C++
В общем есть вот такой код....МЕНЯТЬ В НЕМ НИЧЕГО НЕЛЬЗЯ - можно только дописывать методы... #include &lt;iostream&gt; #include...

Конструктор копирования - C++
Привет Подскажите пожалуйста, как правильно сделать конструктор копирования. Заголовки: class String { public: char *Data; ...

Конструктор копирования - C++
Помогите пожалуйста разобраться!Правильно ли я написал конструктор копирования?Не могу понять почему не срабатывает метод show() для...

Конструктор копирования - C++
Есть вопрос. Как объект одного класса передать в объект другого класса?

Конструктор копирования в c++ - C++
Добрый день, такая задача по с++ Какая ошибка в следующей реализации конструктора копирования по умолчанию и деструктора?? Какой еще...

Конструктор копирования - C++
Помогите сделать для этого конструктор копирования. class Animal { private: int n; int age; char* type; char* name; ...

конструктор копирования - C++
не могу понять, почему не срабатывает конструктор копирования. #include &lt;iostream&gt; using namespace std; class Shape { ...

Конструктор копирования - C++
Ответьте пожалуйста какой необходим конструктор копирования для объекта класса который передается в функцию?

Конструктор копирования - C++
Добрый вечер. Начал изучать перегрузку операций и конструктор копирования. Лазил в инете и налепил такой код. Только вот не могу понять как...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
7002 / 4173 / 595
Регистрация: 29.11.2010
Сообщений: 11,075
25.11.2013, 22:28     Конструктор копирования #2
Конструктор копирования имеет след. вид:
C++
1
2
3
4
5
Matrix(const Matrix &)
{
    // выделяем память
    // копируем
}
Оформляйте код в теги CPP
Yandex
Объявления
25.11.2013, 22:28     Конструктор копирования
Ответ Создать тему
Опции темы

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