[eside-ghost] C++
Alfredo Beaumont
alfredo.beaumont en gmail.com
Jue Jul 19 21:55:21 CEST 2007
Og, 2007eko Uztren 19a(e)an, Juanval(e)k idatzi zuen:
> yeeeepa
>
> Ando programando una cosilla en C++, y para hacer una cosa de forma
> mas o menos elegante, quería hacer que los métodos de escritura de
> ciertas clases no se puedan acceder desde todo el programa, sino
> solamente desde unas clases concretas.
>
> Vamos, dar permiso de escritura a unas clases, pero denegarselo a otras
>
> Una opción que he encontrado es crear una copia const de cada objeto
> que quiera pasar a las clases "inseguras", pero puesto que puede
> llegar a haber del orden de 10000 objetos de estos corriendo de un
> lado para otro, esa solución me da la impresión de que será un tanto
> cruel con la cpu :S
>
> Otra que he encontrado es el tema de definir clases "friend", de forma
> que las clases declaradas asi pueden acceder a los métodos privados de
> la clase en cuestión. Así, declarando esos métodos como privados, solo
> esas clases podrían verlos. Esto tampoco me convence por el tema de
> que esas clases pueden entrar hasta la cocina en las otras, y no es
> plan. Aparte, que creo recordar que Jesús Sanz nos desaconsejó esto en
> clase allá por segundo de carrera...
>
> Si a alguien se le ocurre alguna otra forma, se agradecerá
> enormemente, que ando un tanto ofuscado :(
No le veo mucho sentido a lo que comentas. Probablemente tengas algún error de
diseño, porque no es muy razonable que quieras evitar el acceso de escritura
en ciertas partes del programa. O hay partes del programa que no hacen uso de
tu clase o si no, no tiene sentido que no les dejes escribir.
--
Alfredo Beaumont Sainz
http://www.alfredobeaumont.org/blog.cgi
Más información sobre la lista de distribución eside-ghost