Mail Archives: djgpp/1998/08/26/06:15:24
From: | sparhawk AT eunet DOT at (Gerhard Gruber)
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | Re: Operator overloading problem
|
Date: | Wed, 26 Aug 1998 09:44:53 GMT
|
Organization: | EUnet Austria
|
Lines: | 103
|
Message-ID: | <35e5b656.487056@news.Austria.EU.net>
|
References: | <35e30d75 DOT 267206 AT news DOT telepac DOT pt>
|
NNTP-Posting-Host: | e146.dynamic.vienna.at.eu.net
|
Mime-Version: | 1.0
|
NNTP-Posting-Date: | 26 Aug 1998 09:46:28 GMT
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
Destination: morgado AT mail DOT telepac DOT pt (Jorge Bruno S. S. Morgado)
From: Gruber Gerhard
Group: comp.os.msdos.djgpp
Date: Tue, 25 Aug 1998 19:34:05 GMT:
>Can you tell what is wrong with this code:
>
>I've made a class called Matriz, like this:
>
>
>
>#define MIN_LINHAS 2
>#define MIN_COLUNAS 2
>
>class Matriz
>{
> protected:
> double *matriz_ptr;
> unsigned linhas;
> unsigned colunas;
>
> public:
> Matriz(unsigned i = MIN_LINHAS, unsigned j = MIN_COLUNAS):
> linhas(i), colunas(j) {matriz_ptr = new double[linhas * colunas];}
> ~Matriz() {delete[] matriz_ptr;}
> unsigned n_linhas() const {return linhas;}
> unsigned n_colunas() const {return colunas;}
> double& operator()(unsigned linha, unsigned coluna)
> {return *(matriz_ptr + (linha-1) + (coluna-1) * linhas);}
> friend bool operator==(Matriz&, Matriz&);
>};
remove this "friend" keyword.
>bool operator==(Matriz &a, Matriz &b)
and this should be
bool Matriz::operator==(Matriz &a, Matriz &b)
I think this should work then.
>{
> int i, j;
>
> if(b.n_linhas()!=a.n_linhas() || b.n_colunas()!=a.n_colunas())
> return(false);
>
> for(i=1; i<=a.n_linhas(); i++)
> for(j=1; j<=a.n_colunas(); j++)
> if(a(i,j) != b(i,j));
> return (false);
> return(true);
>}
>
>
>
>
>And in main i've put something like this:
>
>
>
>
>void main()
>{
> Matriz A(2, 3);
> Matriz B;
>
> A(1,1) = 11;
> A(1,2) = 12;
> A(1,3) = 13;
> A(2,1) = 21;
> A(2,2) = 22;
> A(2,3) = 23;
>
> if(A == B)
> cout << "\n\nB = A";
> if(c != y)
> cout << "\nB != A";
>}
>
>
>But the problem is that when I try to compile, it gives the following
>error:
>
>Error: A undeclared (first use this function)
>Error: B undeclared (first use this function)
>
>
>
>Do you know what is wrong with this code ?
>
>
>
--
Bye,
Gerhard
email: sparhawk AT eunet DOT at
g DOT gruber AT sis DOT co DOT at
Spelling corrections are appreciated.
- Raw text -