Hola,

On Dec/04/2009, Pedro Lopez-Cabanillas wrote:
> On Friday, December 4, 2009, Alejandro Exojo wrote:
> > El Viernes, 4 de Diciembre de 2009, Pedro Lopez-Cabanillas escribió:
> > > pues googleando con esto:
> > > http://www.google.es/search?q=std%3A%3Astring+split
> > >
> > > me ha salido la primera:
> > > http://stackoverflow.com/questions/236129/c-how-to-split-a-string
> >
> > Ejem... :-)
> >
> > Si no digo que no lo haya encontrado. Si el problema no es encontrar una
> > función (que yo mismo la podría hacer). Es lo que digo en el párrafo
> > siguiente al que respondes: como se debería encajar una función suelta
> > desde el punto de vista de la POO.
> 
> Perdona, ya veo...
> 
> A primera vista yo haría un método. Una regla fácil para colocar cosas
> en la 

Yo no, ni mucho menos. Argumentos para el no:

-string es un basic_string (creo) y no tiene el destructor virtual. Si
por despiste ponemos, ahora en un futuro (mantenimiento) datos en la
clase derivada que se tuvieran que destruir en el destructor no sería
llamado (si se usa polimorfismo). Es fácil que en algun punto de la vida
del programa esto pase y haya un "sutil" memory leak

(aunque tuviera destructor virtual NO lo haría)

-se puede hacer sin extender la clase principal? Sí. Pues mejor hacerlo
para que sea más pequeña y ligera. Sinó cada uno añadiría cosas a
string, cada capa de software haría su string. Encapsular los datos y
las funciones mínimas, no las de conveniencia.

-se puede complicar que en el programa haya strings y
string_con_tokenizer, aunque tal como lo planteó Alex no debería ser el
caso

Este caso es diferente a otros casos que se redefinen métodos (típico
jugando con clases de Qt) o que se extiende una clase y necesitamos
acceder a métodos que son protected.

> Claro que además de la herencia, también puede tener sentido la
> composición.  Es decir, varias clases incluyen miembros de tipo
> std::string, y necesitan partir esas cadenas miembro de una misma
> forma. Si la operación es común, entonces podría ser un método
> heredado de un ascendiente común.

Si es posible prefiero evitar herencia multiple. Lleva fácilmente a
dependencias en rombo con más bugs sutiles.

Generar una clase que haga composición de string lo veo trabajo por el
hecho de tener que redefinir el interfaz público de string, no?

-- 
Carles Pina i Estany
        http://pinux.info
--
_______________________________________________
Comandob mailing list
[email protected]
http://lists.badopi.org/mailman/listinfo/comandob

Responder a