🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Cuestión sobre C++

#6689
From: Albert Mora
Date: Mon, 26 May 2003 12:08
63 lines
2555 bytes
Hola, 

por lo que veo, tienes una peque�a mala costumbre: implementar los constructores en el archivo *.h. Esto, adem�s de ser feo, te dar� problemas. Y te dar� problemas porque:
> class A {
>     public:
>         A(){};
>         setB(B b);
>     private:
>         B b;
> }

Como _b_ es miembro de la classe _A_, cuando declaras esta clase, el compilador intenta buscar el constructor de _B_ para construir este miembro.

> class B {
>     public:
>         B(){};
>         setA(A a);
>         setC(C c);
>     private:
>         A a;
>         C c;
> }

El constructor de _B_ tb querr� inicializarse y buscar� el constructor de _A_... Esto suena feo, �no?

Adem�s,
>         B(){};
esto no puede ser. O es
         B(){} // Implementa
o es
         B(); // Declara

Mi propuesta es que sigas tu dise�o, pero incluyas sutilmente esta diferencia:

class A {
     public:
         A(); //IMPLEMENTALA EN EL .cxx
         setB(B b);
     private:
         B b;
}

class B {
     public:
         B(); //IMPLEMENTALA EN EL .cxx
         setA(A a);
         setC(C c);
     private:
         A a;
         C c;
}

y esto creo que te funcionar�...

Ya dir�s algo...

albert...

-- 
Albert J. MORA - MTG / IUA / UPF - PLUG
phone: +34 93542.2199
email: amora@iua.upf.es
wpage: http://www.iua.upf.es/~amora
Technical Details
Message-ID: <7avfvx52se.fsf@mtg100.upf.es>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-01!sn-xit-08!supernews.com!38.144.126.75.MISMATCH!feed1.newsreader.com!newsreader.com!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsmi-us.news.garr.it!NewsITBone-GARR!news.rediris.es!news.cesca.es!not-for-mail
References: <3ED1EFAF.9000106@google.com>

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-05-26 05:28:38 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-01!sn-xit-08!supernews.com!38.144.126.75.MISMATCH!feed1.newsreader.com!newsreader.com!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsmi-us.news.garr.it!NewsITBone-GARR!news.rediris.es!news.cesca.es!not-for-mail
From: Albert Mora <amora@iua.upf.es>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Cuestión sobre C++
Date: 26 May 2003 14:08:01 +0200
Organization: CESCA - Servidor de news de l'Anella Cientifica
Lines: 64
Sender: amora@mtg100.upf.es
Message-ID: <7avfvx52se.fsf@mtg100.upf.es>
References: <3ED1EFAF.9000106@google.com>
NNTP-Posting-Host: mtg100.upf.es
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: noucreus-atm.cesca.es 1053951049 13103 193.145.55.100 (26 May 2003 12:10:49 GMT)
X-Complaints-To: newsmanager@cesca.es
NNTP-Posting-Date: Mon, 26 May 2003 12:10:49 +0000 (UTC)
User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2