Programación General > C/C++

 Error en contructor de copia

(1/3) > >>

Checho360:
Bueno, tengo el siguiente codigo:


--- Código: C++ ---#include <iostream>using namespace std;#define MAX_SIZE 10 class matrix{      public:             int size; double s[MAX_SIZE];             matrix (int n);             ~matrix() {}             int test_matrix (int a);             matrix scan_matrix (void);             matrix operator + (matrix A);             void print_matrix (void);             matrix (matrix& A);//<---------------Aqui esta la declaracion}; matrix :: matrix (matrix& A){ //<-------------Aqui esta la implementación       size = A.size;       for (int i=0;i<A.size;i++) s[i]=A.s[i];       } matrix :: matrix (int n){       size = test_matrix(n);       } int matrix :: test_matrix (int a){    if(a>MAX_SIZE){                   cerr<<"Demasiados elementosn";                   a=MAX_SIZE;                   }    return a;} matrix matrix :: scan_matrix (void){       for(int i=0;i<size;i++){       cout<<"Ingresa el coef "<<i<<"n";cin>>s[i];       }} matrix matrix :: operator + (matrix A){     if(A.size!=size){                      cerr<<"Los vectores han de ser del mismo orden";                      }     matrix C (A.size);     for(int i=0;i<A.size;i++){            C.s[i]=s[i]+A.s[i];}     return C;     } void matrix :: print_matrix (void){     for(int i= 0;i<size;i++){             cout<<"Suma no "<<i<<" = "<<s[i]<<"n";             }     } int main(){    int n;int m;    cout<<"Introduzca el orden del vector1n";    cin>>n;    matrix A(n);    A.scan_matrix();    cout<<"Introduzca el orden del vector2n";    cin>>m;    matrix B(m);    B.scan_matrix();        matrix D = A + B;        D.print_matrix ();        system("pause");return 1;}  
Sé que el error está en alguna parte del constructor de copia por que el programa compila y funciona si le quito esa redefinición, sin embargo no encuentro el error. A ver si alguien me puede decir donde está el error y ya de paso por qué hay que tener escrito el operador '&' en la declaración.

Un saludo y muchas gracias de antemano!!!

Checho360:
Bueno me había confundido de código

m0skit0:
Fíjate que el constructor de copia no recibe matrix A, sino matrix& A.

Checho360:

--- Cita de: "m0skit0" ---Fíjate que el constructor de copia no recibe matrix A, sino matrix& A.
--- Fin de la cita ---

Pero si no le pongo el & tampoco compila :S

m0skit0:

--- Cita de: "Checho360" ---Pero si no le pongo el & tampoco compila :S
--- Fin de la cita ---
Yo no he dicho que no le pongas el & querido amigo. Y si no dices qué errores te da, pues difícilmente podremos ayudarte.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa