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

класс с матрицами - C++

Восстановить пароль Регистрация
 
dota
3 / 3 / 0
Регистрация: 20.09.2010
Сообщений: 100
18.04.2011, 19:17     класс с матрицами #1
всем привет. очень нужна ваша помощь. прогу написал , но выдает 2 какие-то странные ошибки. посмотрите плиз , если вас не затруднит.
ЗЫ : суть работы в том , чтобы написать класс , который обеспечивает работу с матрицами 2х2 , перегрузив основные операторы .

Заранее большое спасибо !
Код
#include <iostream.h>
#include <conio.h>
#include <math.h>

const int l=2;
const int s=2;
int f;
 
    class matrix {   // êëàññ ìàòðèöà
        private:
        int **matr;
 void Create()
        {
            matr = new  int*[l];
            for (int z=0; z<s; z++)
                matr[z] = new int[s];
        }
        public:
		matrix (int l,int s);       
		int* operator[](int i) { return matr[i]; } 
const int* operator[](int i) const { return matr[i]; }     
        matrix operator+(const matrix & b);
        matrix operator-(const matrix & b);
        matrix operator*(const matrix & b);
        matrix operator*(int f);        
        void   In_put();
        void   Out_put();
 ~matrix()
        {
            for (int z=0; z<l; z++)
                delete[] matr[z];
            delete[] matr;
        }

        };
 
matrix  matrix::operator*(const matrix & b)
    {
	int i,j,k;
	matrix c(l,s);
for (i=0;i<l;i++)
	for (j=0;j<l;j++)
		for (k=0; k<l; k++)
			c[i][j]+=b[i][k]+(*this)[k][j];
return c;
    };

matrix matrix::operator * (int f)
{
int i,j;
matrix c(l,s);
for (i=0;i<l;i++)
	for (j=0;j<l;j++)
		c[i][j]=((*this)[i][j])*f;
return c;
};

 
matrix matrix::operator + (const matrix & b)
{
int i,j;
matrix c(l,s);
for (i=0;i<l;i++)
	for (j=0;j<l;j++)
		c[i][j]=b[i][j]+(*this)[i][j];
return c;
};
 
matrix  matrix::operator-(const matrix & b)
{
int i,j;
matrix c(l,s);
for (i=0;i<l;i++)
	for (j=0;j<l;j++)
		c[i][j]=b[i][j]-(*this)[i][j];
return c;
};
 
void matrix::Out_put()
{
	matrix c(l,s);
for(int i=0;i<l;i++)
    {
    for(int j=0;j<l;j++) { cout<<""<<(c[i][j]);}
	cout<<endl;}        
};
 
void matrix::In_put()
{
	matrix a(l,s);
for(int i=0;i<l;i++)
    {
    for(int j=0;j<l;j++)
        {cin>>(a[i][j]);}}
};
 
int main()
{
	int f;
matrix m1(l,s), m2(l,s), m(l,s);
cout << "\nMatrix 1: \n";
m1.In_put();
cout << "\nMatrix 2: \n";
m2.In_put();
m=m1+m2;
cout << "\n Matrix 1 + Matrix 2 : \n";
m.Out_put();
cout << "\n";
m=m1-m2;
cout << "\n Matrix 1 - Matrix 2 : \n";
m.Out_put();
cout << "\n";
m=m1*m2;
cout << "\n Matrix 1 * Matrix 2 :\n";
m.Out_put();
cout << "\n";
cout<<"Enter f:";cin>>f;
m=m1*f;
cout << "\n Matrix 1 * f :\n";
m.Out_put();
m=m2*f;
cout << "\n Matrix 2 * f :\n";
m.Out_put();

return 0;
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
18.04.2011, 19:50     класс с матрицами #2
а написать какие ошибки не судьба? или должны сами додуматься
dota
3 / 3 / 0
Регистрация: 20.09.2010
Сообщений: 100
18.04.2011, 19:58  [ТС]     класс с матрицами #3
matrix_2.obj : error LNK2001: unresolved external symbol "public: __thiscall matrix::matrix(int,int)" (??0matrix@@QAE@HH@Z)
Debug/matrix_2.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

matrix_2.exe - 2 error(s), 0 warning(s)
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
18.04.2011, 20:02     класс с матрицами #4
ну и что вам непонятно в этой ошибке если вы сами писали программу?
перевожу: компилятор не видит у вас описание конструктора с параметрами, есть только объявление на 19ой строке вашего кода
C++
1
2
3
4
matrix::matrix (int l,int s)
{
// тут что-то делаем
}
dota
3 / 3 / 0
Регистрация: 20.09.2010
Сообщений: 100
18.04.2011, 20:12  [ТС]     класс с матрицами #5
я кое-что дописал и программа запустилась :
matrix (int l,int s){Create();};
выводит предупреждение : .\Debug\matrix_2.obj : warning LNK4042: object specified more than once; extras ignored


но после того , как я ввожу с клавиатуры 2 матрицы , программа сворачивается. что делать ?
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
18.04.2011, 20:17     класс с матрицами #6
сделайте трассировку
dota
3 / 3 / 0
Регистрация: 20.09.2010
Сообщений: 100
18.04.2011, 20:21  [ТС]     класс с матрицами #7
а это как ? )
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2011, 20:43     класс с матрицами
Еще ссылки по теме:

C++ Класс для работы с матрицами
C++ класс для работы с матрицами
C++ Создать класс для работы с матрицами

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

Или воспользуйтесь поиском по форуму:
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
18.04.2011, 20:43     класс с матрицами #8
dota, http://ru.wikipedia.org/wiki/%D0%A2%...BD%D0%B8%D0%B5)
Yandex
Объявления
18.04.2011, 20:43     класс с матрицами
Ответ Создать тему
Опции темы

Текущее время: 18:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru