Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





C++ y POO

Iniciado por sukhur, 05 de Enero de 2007, 10:12:24 AM

« anterior - próximo »

Fran

Cita de: "marcode"un momento, que va a opinar el especialista:

Cita de: "Bruce Eckel"
Si el problema consiste en averiguar el tipo exacto de todos los objetos, hay que volver a pensar porque posiblemente no se estén usando las funciones virtuales de forma apropiada. Sin embargo, hay algunas situaciones en las cuales el diseño funciona mejor (o no hay otra elección) si se conoce el tipo exacto de todos los objetos, por ejemplo aquellos incluidos en un contenedor genérico. Este es el problema de la runtime type identificatión o RTTI (identificación de tipos en tiempo de ejecucion).

Me qdo con q si se usa es xq no se stán usando de manera apropiada las funciones virtuales.

Per cojo tb un libro suyo y lo q dice de RTTi:

http://home1.stofanet.dk/vores_hjemme/book2/IndexXTOC.htm

9: Run-time type identification

Run-time type identification (RTTI) lets you find the exact type of an object when you have only a pointer or reference to the base type.

This can be thought of as a "secondary" feature in C++, a pragmatism to help out when you get into messy situations. Normally, you'll want to intentionally ignore the exact type of an object and let the virtual function mechanism implement the correct behavior for that type. But occasionally it's useful to know the exact type of an object for which you only have a base pointer. Often this information allows you to perform a special-case operation more efficiently or prevent a base-class interface from becoming ungainly. It happens enough that most class libraries contain virtual functions to produce run-time type information. When exception handling was added to C++, it required the exact type information about objects. It became an easy next step to build access to that information into the language.

This chapter explains what RTTI is for and how to use it. In addition, it explains the why and how of the new C++ cast syntax, which has the same appearance as RTTI.

Por cierto. El ejemplo q ponde de Highlight es para matarlo. Hay una manera muy muy sencilla para evitar usar RTTi. Aunq tb dice que la primera aproximación de un novato o algo asi es hacerlo como él describe...

jaure

Cita de: "marcode"un momento, que va a opinar el especialista:

Cita de: "Bruce Eckel"
Si el problema consiste en averiguar el tipo exacto de todos los objetos, hay que volver a pensar porque posiblemente no se estén usando las funciones virtuales de forma apropiada. Sin embargo, hay algunas situaciones en las cuales el diseño funciona mejor (o no hay otra elección) si se conoce el tipo exacto de todos los objetos, por ejemplo aquellos incluidos en un contenedor genérico. Este es el problema de la runtime type identificatión o RTTI (identificación de tipos en tiempo de ejecucion).

A mi me ha quedado mu claro.

Vicente

Cita de: "Fran"
Cita de: "marcode"un momento, que va a opinar el especialista:

Cita de: "Bruce Eckel"
Si el problema consiste en averiguar el tipo exacto de todos los objetos, hay que volver a pensar porque posiblemente no se estén usando las funciones virtuales de forma apropiada. Sin embargo, hay algunas situaciones en las cuales el diseño funciona mejor (o no hay otra elección) si se conoce el tipo exacto de todos los objetos, por ejemplo aquellos incluidos en un contenedor genérico. Este es el problema de la runtime type identificatión o RTTI (identificación de tipos en tiempo de ejecucion).

Me qdo con q si se usa es xq no se stán usando de manera apropiada las funciones virtuales.

Yo me quedo mejor con el "por ejemplo aquellos incluidos en un contenedor genérico", que es el problema que tratabamos de resolver. Aunque de tu post el "prevent a base-class interface from becoming ungainly" también está muy bien :)

Un saludo!

Vicente

Fran

Cita de: "Vicente"
Cita de: "Fran"
Cita de: "marcode"un momento, que va a opinar el especialista:

Cita de: "Bruce Eckel"
Si el problema consiste en averiguar el tipo exacto de todos los objetos, hay que volver a pensar porque posiblemente no se estén usando las funciones virtuales de forma apropiada. Sin embargo, hay algunas situaciones en las cuales el diseño funciona mejor (o no hay otra elección) si se conoce el tipo exacto de todos los objetos, por ejemplo aquellos incluidos en un contenedor genérico. Este es el problema de la runtime type identificatión o RTTI (identificación de tipos en tiempo de ejecucion).

Me qdo con q si se usa es xq no se stán usando de manera apropiada las funciones virtuales.

Yo me quedo mejor con el "por ejemplo aquellos incluidos en un contenedor genérico", que es el problema que tratabamos de resolver. Aunque de tu post el "prevent a base-class interface from becoming ungainly" también está muy bien :)

Un saludo!

Vicente

:lol:  :lol:  Yo me qdo como toy. Despues de todo el post no solo me reafirmo sino q si cabe stoy mas convencido q al ppio. de lo q defendí. Asi q cada uno q se qde con lo q mas le apetezca.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.