Programación General > C/C++

 Consulta en clases

<< < (2/3) > >>

m0skit0:
No sé si no me explico bien o qué... Sigues mezclando implementaciones dentro y fuera de la clase.

Dentro de la clase:

--- Código: C++ ---matrix (int n){                            size=test_matrix(n);             } 
Fuera de la clase:

--- Código: C++ ---int matrix :: test_matrix (int a){    if(a>MAX_SIZE){                   cerr<<"Demasiados elementosn";                   a=MAX_SIZE;                   }    return a;} Además como te he comentado anteriormente, las llaves de cierre van a la misma altura que la sentencia que las abre, y lo que vaha dentro sólo va una tabulación más dentro, no hasta la llave (sobre todo si está al final de línea), es decir, este método anterior tiene que quedar como:


--- Código: C++ ---int matrix :: test_matrix (int a){    if(a>MAX_SIZE){        cerr<<"Demasiados elementosn";        a=MAX_SIZE;    }    return a;} 
--- Cita de: "Checho360" ---es que si pongo algo en private luego no puedo acceder a ello desde otras partes del programa y entonces tendría que crear otra función para poder acceder a ella ?? es que no entiendo muy bien
--- Fin de la cita ---

Sí, así es. Eso en POO se llaman "getters" y "setters", que modifican los atributos privados mediante lo que se puede denominar una "interfaz", así puedes controlar asuntos como validaciones, rangos, etc...

Checho360:

--- Cita de: m0skit0 ---No sé si no me explico bien o qué... Sigues mezclando implementaciones dentro y fuera de la clase.

Dentro de la clase:

--- Código: C++ ---matrix (int n){                            size=test_matrix(n);             } 
Fuera de la clase:

--- Código: C++ ---int matrix :: test_matrix (int a){    if(a>MAX_SIZE){                   cerr<<"Demasiados elementosn";                   a=MAX_SIZE;                   }    return a;} 
Pero como hago para darle el valor correspondiente a size con un programa externo ?? la unica forma que se me ocurre es esa que tengo ahí :S ; ah y por cierto esta tarde me pondré un poco con el private a ver que tal :P

Un saludo!!
--- Fin de la cita ---

m0skit0:
Yo no te digo que lo estés haciendo mal en cuanto a la funcionalidad, sino a la legibilidad y coherencia: que pongas la implementación del constructor fuera de la clase también  :P


--- Código: C++ ---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(int n){    size=test_matrix(n);} En cuanto a lo del private, también deben ser privados los métodos que no vayan a ser usados por clases externas.

Checho360:
Bueno pues muchas gracias, ya cambio yo ahora como tu dices. Por cierto, tengo por ahí otro post  con un error a la hora de poner el constructor copia, quizas me podrias echar un cable ejejje :P

Un saludo!!

m0skit0:
En tu hilo dices que ya lo has corregido  <_<

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa