🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #10318

Re: variables static en C++

#10318
From: Enrique Arizón Benito
Date: Thu, 07 Mar 2002 12:28
42 lines
2745 bytes
La soluci�n m�s simple a mi modo de ver es definir un vector (array
sin tama�o predeterminado) como miembro est�tico en la clase base. As�
las clases hijas (que comparten el mismo contenedor) s�lo tienen que
a�adir datos donde les corresponda. El problema aqu� es que entonces
un fallo en la implementaci�n de una de las clases hijas podr�a
corromper los datos del vector.

 Por tanto creo que ser�a mejor que en la clase madre definieses un
m�todo "fabrica" (que ser�a p�blico y est�tico) de objetos
correspondientes a las clases derivadas y luego no crearlos
directamente por medio del operador new, sino a trav�s de este m�todo
que se encargar�a de crear y registrar cada nueva instancia (en una
estructura no visible por las clases derivadas, para evitar el
problema anterior). Luego deber�as crear un m�todo "basurero" parejo
del f�brica donde eliminar las instancias de las clases derivadas.

Nota: Desconozco si existe alg�n tipo de contenedor o clase estandar
en C++ que haga lo anterior de forma casi/autom�tica.


> Hola,
> 
> Para empezar indicar que s� lo justo (o menos) de C++ y de ah� deben de
> venirme los problemas.
> En concreto no se como solucionar lo siguiente:
> 
> Tengo una clase A de la que se derivan varias clases A1, A2, ...An. Me
> interesa saber cuantos elementos tengo de cada clase Ai, para lo que pongo
> una variable static int contador en cada Ai y una funci�n static void
> SumaUno() en cada Ai tambi�n.
> �De qu� manera, si es que se puede, tendr�a que definirlas en A para que me
> contara los objetos que tengo de cada clase derivada Ai y no de todas a la
> vez?
> 
> Espero haberme aclarado con tanto Ai,j
> 
> Un saludo y gracias
> 
> Paco
> 
> --------------------
> malto: fgsevilla EN ono PUNTO com
Technical Details
Message-ID: <4eb64fb0.0203070428.421c1a41@posting.google.com>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!postnews1.google.com!not-for-mail
References: <QmNg8.7787$sZ4.110654@news.ono.com>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,fcde9a39b2616cdc
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2002-03-07 04:31:47 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!postnews1.google.com!not-for-mail
From: e_arizon_benito@yahoo.com (Enrique Arizón Benito)
Newsgroups: es.comp.os.linux.programacion
Subject: Re: variables static en C++
Date: 7 Mar 2002 04:28:17 -0800
Organization: http://groups.google.com/
Lines: 42
Message-ID: <4eb64fb0.0203070428.421c1a41@posting.google.com>
References: <QmNg8.7787$sZ4.110654@news.ono.com>
NNTP-Posting-Host: 213.97.11.160
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: posting.google.com 1015504097 19437 127.0.0.1 (7 Mar 2002 12:28:17 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: 7 Mar 2002 12:28:17 GMT