Article View: es.comp.os.linux.programacion
Article #6429Re: Cuesti�n sobre C++
From: Ali
Date: Fri, 20 Jun 2003 11:32
Date: Fri, 20 Jun 2003 11:32
53 lines
2921 bytes
2921 bytes
Esto no es del todo correcto: nada impide que un lenguaje tenga recurrencia
de clases. Es una cuestion de generacion de codigo donde esto se resuelve
(aunque yo no sere el valiente q lo vaya a hacer).
Lo digo porque tuve q hacer un compilador q soportaba esta caracteristica, y
lo anterior era perfectamente valido.
Para este tipo de declaraciones lo mejor es anteponer la declaracion de la
clase:
class B;
class A;
class B{ ....}
aunque esto resuelve parcialmente los problemas, ya que si usamos metodos de
A dentro de B, seguira dando problemas de declaraciones no encontradas. En
este caso lo mejor es declarar las clases por un lado y escribir el cuerpo
de las rutinas por otro. Entonces ya no hay mas problemas. Otra cosa es que
C++ soporte las clases recurrentes, que creo que no, pero tampoco lo he
probado xD
"Juli�n Albo" <JULIANALBO@terra.es> escribi� en el mensaje
news:3ED227D5.424C26E6@terra.es...
carlos escribi�:
> class A {
> public:
> A(){};
> setB(B b);
> private:
> B b;
> }
>
> class B {
> public:
> B(){};
> setA(A a);
> setC(C c);
> private:
> A a;
> C c;
> }
Veamos, la clase A contiene un objeto de la clase B, la clase B contiene
un objeto de la clase A, que contiene un objeto de la clase B, que
contiene uno de la A... Por tanto el tama�o de los objetos de las clases
A y B habr�a de ser infinito.
No puede hacerse, al menos uno de los dos tenr�a que usar un puntero o
una referencia a la otra clase en vez de un objeto.
Salu2
Technical Details
Message-ID:
<1056108780.175811@seux119>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsfeed.berkeley.edu!ucberkeley!priapus.visi.com!news-out.visi.com!petbe.visi.com!easynet-monga!easynet.net!bashful.rediris.es!newsfeed.bt.es!news.bt.es!not-for-mailReferences:
<3ED1EFAF.9000106@google.com> <3ED227D5.424C26E6@terra.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,ec6d950f22b8f69f X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2003-06-20 04:36:14 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsfeed.berkeley.edu!ucberkeley!priapus.visi.com!news-out.visi.com!petbe.visi.com!easynet-monga!easynet.net!bashful.rediris.es!newsfeed.bt.es!news.bt.es!not-for-mail From: "Ali" <alunaro@supercable.es> Newsgroups: es.comp.os.linux.programacion Subject: Re: Cuesti�n sobre C++ Date: Fri, 20 Jun 2003 13:32:58 +0200 Organization: Supercable Andalucia, S.A. Lines: 55 Message-ID: <1056108780.175811@seux119> References: <3ED1EFAF.9000106@google.com> <3ED227D5.424C26E6@terra.es> NNTP-Posting-Host: 212.79.128.146 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: titan.bt.es 1056107474 19369 212.79.128.146 (20 Jun 2003 11:11:14 GMT) X-Complaints-To: abuse@bt.es NNTP-Posting-Date: 20 Jun 2003 11:11:14 GMT X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Cache-Post-Path: seux119!unknown@cliente-217217161172.ubrseb01.supercable.es X-Cache: nntpcache 2.4.0b5 (see http://www.nntpcache.org/)