[C con Clase] Otra duda

Salvador Pozo salvador en conclase.net
Mie Mar 12 20:36:02 CET 2014


MAj> cuando hago esta operacion el compilador me dice que hay un error
MAj> no known conversion for argument 1 from 'const A' to 'A&'

Hola:

El error es porque estás intentando asignar un puntero constante a un puntero no constante. El dato miembro de B es un puntero no constante, "arg". No es posible asignar un puntero a una referencia constante a un puntero no constante. Eso haría posible modificar el contenido de "arg", y estaría en contra de la declaración del parámetro como referencia constante.

Hay dos opciones, dependiendo de lo que pretendas hacer:

- Declarar arg como un puntero constante:
const A *arg;

- Declarar la referencia en el constructor como no constante:
B(A &c):arg(&c){}

MAj> pero si en cambio cambio los parametros del constructor copia en la clase B
MAj> , asi : B(A const &) , no me genera un error

No entiendo qué has modificado para evitar el error, me parece que B(A const &) es la misma declaración que aparece en el código.

Hasta pronto.

MAj> Gracias

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net
Blog con Clase: http://blogconclase.wordpress.com
Con Clase: http://conclase.net


Más información sobre la lista de distribución Cconclase