Gå til innhold

Pekerproblem i C++


Anbefalte innlegg

Hei, jeg har i oppgave (2klasse data) å lage et program som kan legge samme, trekke fra og multiplisere matriser.

 

Jeg har laget programmet slik at det kan lese inn to matriser (verdiene og størrelsene er hardkodet), og skrive ut innholdet igjen.

 

Det jeg sliter med, er å få pekerne tilbake til CMatrix klassen slik at jeg kan bruke dem til beregningen av +,- og *

 

Jeg tror man kan overloade operatorene slik at jeg bare kan ta C = A*B ,men jeg husker ikke syntaxen for det, og pekerne må uansett sendes over.

 

Jeg legger ved koden:

 

 

#include <iostream>

class CMatrix
{
private:

int NumberOfRows;
int NumberOfColumns;
int *matrix;



public:
CMatrix(int ROWS, int COLUMNS);
~CMatrix();
void InsertMatrix(int row, int column, int value);
void PrintMatrix();
void AddMatrix();
void SubtractMatrix();
void MultiplyMatrix();
};

 

og

 

#include "CMatrix.h"


CMatrix::CMatrix(int ROWS, int COLUMNS)
{
NumberOfRows = ROWS;
NumberOfColumns = COLUMNS;
matrix = new int[NumberOfRows*NumberOfColumns];
}

CMatrix::~CMatrix()
{

}

void CMatrix::InsertMatrix(int row, int column, int value)
{
matrix[row + NumberOfRows * column] = value;
}

void CMatrix::PrintMatrix()
{
for(int i = 0; i < NumberOfRows; i++)
{
	for(int j = 0; j < NumberOfColumns; j++)
		std::cout << matrix[j + NumberOfRows * i];
	std::cout << std::endl;
}
}

void CMatrix::AddMatrix()
{ 

}

void CMatrix::SubtractMatrix()
{

}

void CMatrix::MultiplyMatrix()
{

}

 

og

 

#include "CMatrix.h"
#include <iostream>

int main()
{	
std::cout << "Welcome to this matrix arithmatic program\n" << std::endl;
//std::cout << "Please enter matrix A\n" << std::endl;
//std::cout << "Please enter matrix B\n" << std::endl;

CMatrix *A = new CMatrix(2,2);
CMatrix *B = new CMatrix(2,2);
CMatrix *C = new CMatrix(2,2);

A -> InsertMatrix(0,0,1);	A -> InsertMatrix(1,0,2);
A -> InsertMatrix(0,1,3);	A -> InsertMatrix(1,1,4);

B -> InsertMatrix(0,0,5);	B -> InsertMatrix(1,0,6);
B -> InsertMatrix(0,1,7);	B -> InsertMatrix(1,1,8);

A -> PrintMatrix();
std::cout << std::endl;
B -> PrintMatrix();
std::cout << std::endl;


}

 

Oppgava skal inn senest 24:00 idag. Er takkmenlig for all hjelp jeg kan få!

 

Mvh

 

Francis :)

 

EDIT: Skrivefeil

Endret av :Francis:
Lenke til kommentar
Videoannonse
Annonse

du trenger ikke allokere med new. gjør heller

cMatrix A(2,2);

og da kan du gjøre

A.insertMatrix(..) osv.

 

koden for operator-overlasting er som følger:

 

cMatrix operator*(const cMatrix &rhs)const

{

cMatrix ans(NumberOfRows,NumberOfColumns);

//koden din her

return ans;

}

cMatrix operator+(const cMatrix &rhs)const

{

cMatrix ans(NumberOfRows,NumberOfColumns);

//koden din her

return ans;

}

cMatrix operator-(const cMatrix &rhs)const

{

cMatrix ans(NumberOfRows,NumberOfColumns);

//koden din her

return ans;

}

 

Og dersom du ikke husker syntaxen for noe, så er svaret som regel bare et lite bokoppslag/googleoppslag unna :)

Endret av _vamecum
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...