🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Cuesti�n sobre C++

#6429
From: Ali
Date: Fri, 20 Jun 2003 11:32
53 lines
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-mail
References: <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/)