Duvida: Sintaxe no Construtor

31/03/2005

1

pessoal, to começando a estudar OO e C++ não entendi essa sintaxe. Logo após declarar aos parametros da classe, ja tem uma instrução seguida de dois pontos. o que significa isso?


TextFrame::TextFrame(const wxChar *title, int xpos, int ypos, int width, int height)
: wxFrame((wxFrame *) NULL, -1, title, wxPoint(xpos, ypos), wxSize(width, height))
{
}



vlws!!!


Responder

Posts

31/03/2005

Massuda

pessoal, to começando a estudar OO e C++ não entendi essa sintaxe. Logo após declarar aos parametros da classe, ja tem uma instrução seguida de dois pontos. o que significa isso?
No seu exemplo, TextFrame deve ser uma classe derivada de wxFrame.

O que está após os dois pontos é a chamada ao construtor da classe wxFrame, classe pai/base de TextFrame.


Responder

01/04/2005

Marvinla

humm, entendi.. quer dizer q já posso chamar o construtuor ali direto...
qual a vantagem em faazer assim, ou chamar dentro das chaves?

vlws


Responder

01/04/2005

Massuda

qual a vantagem em faazer assim, ou chamar dentro das chaves?
Já tem algum tempo que não trabalho com C++, mas pelo que me lembro, você não pode ´chamar dentro das chaves´... isso o Delphi permite, mas C++ não. C++ sempre chama o construtor da classe base [b:7693d46d11]antes[/b:7693d46d11] do construtor da classe derivada. No caso do destrutor, a ordem é inversa.

A sintaxe usando o : pemite você passar parâmetros diferentes para o construtor da classe base.


Responder