Article View: es.comp.os.linux.programacion
Article #10318Re: variables static en C++
From: Enrique Arizón Benito
Date: Thu, 07 Mar 2002 12:28
Date: Thu, 07 Mar 2002 12:28
42 lines
2745 bytes
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-mailReferences:
<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