Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Estado
subtletrue
colourGreen
titletlpp - language

Composition Setup
import.css=/download/attachments/327912/newLayout.css
Portuguese
Section
No quadro abaixo, o exemplo completo do caso Point/Circle.
No exemplo, é possível compilar e rodar a função U_Circle().



Bloco de código
languagecpp
firstline1
titleExemplo completo de herança
#include "tlpp-core.th"
 
Class Point
   private data x as numeric
   private data y as numeric
   public method New(x as numeric, y as numeric)
   public method getX() as numeric
   public method getY() as numeric
EndClass
 
Class Circle From Point
   private data r as numeric
   public method New(x as numeric, y as numeric, r as numeric)
   public method draw()
EndClass


// Implementando a classe pai Point
/////////////////////////////////////////////////////////////////

method New(x as numeric, y as numeric) class Point
  ::x := x
  ::y := y
Return Self

method getX() class Point
Return ::x

method getY() class Point
Return ::y


// Implementando a classe filha Circle
/////////////////////////////////////////////////////////////////

method New(x as numeric, y as numeric, r as numeric) class Circle
  _Super:New(x, y) // as coordenadas x e y estão na classe pai Point
  ::r := r
Return Self

method draw() class Circle
  Local x := ::getX() as Numeric   // método herdado
  Local y := ::getY() as Numeric   // método herdado 
  Conout("Desenhe um círculo de raio " + cValToChar(::r) + " no centro (" + cValToChar(x) + ", " + cValToChar(y) + ")")
Return


// Criando uma função para rodar o exemplo
/////////////////////////////////////////////////////////////////

Function U_Circle()
   Local obj as Object
   obj := Circle():New(40,12,10)
   obj:draw()
Return