Cita:  
					Iniciado por Heimish2000  
  El error puede estar en la declaración de temp, ya que  deberías crear el objeto con un new, para lo que tienes que definir el constructor de copia (ahora, aunque digas que lo tienes, lo que tienes es el operador de asignacion)
 
matrix temp = new matrix(A.size);
 
Por otra parte, no deberías declarar los atributos como públicos (eso no dará errores de compilación ni ejecución, pero no está bien hacerlo)
    Ostia tienes toda la razón; no es que no tenga definido el constructor copia es que me había confundido de código jajajja 
Aqui esta el codigo de verdad:    
Código C++:
Ver original- #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 elementos\n"; 
-                    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 vector1\n"; 
-     cin>>n; 
-     matrix A(n); 
-     A.scan_matrix(); 
-     cout<<"Introduzca el orden del vector2\n"; 
-     cin>>m; 
-     matrix B(m); 
-     B.scan_matrix(); 
-     
-     matrix D = A + B; 
-     
-     D.print_matrix (); 
-     
- } 
Un saludo!!!