Eduardo Issao Ito wrote:
>
> Einar Saukas wrote:
> >
> > class MessageOutputStream extends ObjectOutputStream {
> > private ByteArrayOutputStream _bos;
> > MessageOutputStream() throws java.io.IOException {
> > super(_bos = new ByteArrayOutputStream()); // ERRO!
> > }
> > }
> >
> > ... de forma que o cliente possa usar essa classe fazendo
> > apenas isto:
> >
> > MessageOutputStream var = new MessageOutputStream();
>
> Isso funcionaria em C++?
Acabei de testar e funciona sim! Olha só:
class ByteArrayOutputStream {
public:
ByteArrayOutputStream() {}
};
class ObjectOutputStream {
public:
ObjectOutputStream(ByteArrayOutputStream *) {}
};
class MessageOutputStream:ObjectOutputStream {
private:
ByteArrayOutputStream *_bos;
public:
MessageOutputStream() :
ObjectOutputStream(_bos=new ByteArrayOutputStream()) {}
};
void main() {
MessageOutputStream *var = new MessageOutputStream();
}
Mas concordo com o Frederico, essas simplificações devem ter
sido feitas para facilitar o trabalho dos compiladores Java. A
compilação de programas em C++ é muito mais lenta e complexa, por
isso é até compreensível que eles consigam lidar com construções
mais sofisticadas...
(E me desculpem por mandar código C++ para a lista de Java,
mas é que mesmo assim o assunto ainda é Java, ou mais precisamente,
a comparação entre compilação Java e C++. Acho que isso interessa a
bastante gente, por isso estou mandando essas informações aqui.)
Um abraço,
Einar Saukas
Technical Consultant
Summa Technologies, Inc.
http://www.summa-tech.com
--------------------------- LISTA SOUJAVA ---------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
---------------------------------------------------------------------