Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - xstriga

Pagine: [1]
1
Domande tecniche / Re: Funzione Sovrascrivibili
« il: 11 Marzo 2014, 18:04:20 »
Prima mi chiarisco un pò le idee..  :hatecomputer:

2
Domande tecniche / Re: Funzione Sovrascrivibili
« il: 11 Marzo 2014, 17:24:25 »
L'Overriding si ... se riscrivi la funzione nella classe derivata con la stessa filma .. L'Overloading .. no ... ( non puoi scrivere la stessa funzione con firme differenti )
Esempio :

Classe 1
  Public Sub Prova()
     Print "Classe 1"
  End Sub

Classe 2
  Inherits Classe 1

  'Ridefinisco Prova
  Public Sub Prova()
     Print "Classe 2"
  End Sub

'Non posso nascondere il metodo della classe base .. come con Shadows
'Posso sempre chiamare il metodo della classe base con Super.Prova

Quello che non posso fare è l'overloading, ossia nella stessa classe definire la stessa funzione con firme differenti :

Public Sub Prova()

Public Sub Prova(item as integer)

Public Sub Prova(item as long)   8)

'Per il Casting direi che non ci sono funzioni specifiche a parte la conversione di interi e stringhe..
'Abbiamo i Variant ed il tipo di oggetto al quale fanno riferimento ..



    

3
Domande tecniche / Re: Funzione Sovrascrivibili
« il: 11 Marzo 2014, 13:26:13 »
Sto appunto leggendo dell'oggetto statico Object e dei sui metodi ...
Ora vedo se esiste il Casting o visto che sono disponibili i puntatori come procedere...  8)

4
Domande tecniche / Re: Funzione Sovrascrivibili
« il: 11 Marzo 2014, 12:02:33 »
Naturalmente .. tempo permettendo ...!!
Qui ho trovato maggiori dettagli :
http://files.allbasic.info/Gambas/help/help/doc/object-model.html
e in una discussione, in spagnolo, mi sembra di aver capito che per l'overloading non ci sia niente da fare.. poichè normalmente
tale compito viene demandato al compilatore.
Essendo Gambas un linguaggio imperativo, fortemente e staticamente tipizzato non è possibile sperare che tale funzione venga inserita anche in futuro (spero di sbagliarmi).

Ora prima di fare un punto sulla situazione stò cercando di capire come ottenere il tipo di un istanza di un oggetto ereditato.
La funzione typeof mi restituisce solo che l'oggetto creato è un object .. a mè interessa sapere che tipo di oggetto ho creato.
Es..
1. Creao una classe xObject con le sua variabili, proprietà e metodi..
2. Eredito dale classe in xLine e aggiungo variabili, proprietà e metodi..
3. Una classe Document mi gestisce la creazione degli oggetti .. per esempio creo una xLine e la aggiungo ad una collezzione di xObject
4. Ora per visualizzare il tutto itero la collezione e eseguo un metodo comune presente in xObject .. per esempio Draw()..
5. Se devo manipolare un singolo oggetto xObject avrei la necessità di sapere se è una xLine o un altro tipo di oggetto e quindi eseguite un Casting
   Es.. http://www.codeproject.com/Articles/5044/Cheat-Sheet-Casting-in-VB-NET-and-C
   Se non è implementato inserisco una variabile interna, magari di tipo STATIC ed una proprietà in sola lettura.. ( vediamo )


5
Domande tecniche / Re: Funzione Sovrascrivibili
« il: 10 Marzo 2014, 18:37:20 »
A parte la retorica ... Vogliamo fare un pò di cultura iniziando dalle mie considerazioni ?
Rispondiamo alle seguenti domande :
- Le classi in Gambas sono tutte ereditabili ?
- Non esistono parole chiave per imporre che una classe debba essere ereditata e non creata ?
- Per sovrascrivere un metodo basta solo riscriverso nella classe derivata con la stessa firma ?
- In gambas esiste l'overloading ? Come si applica ?

Grazie

6
Domande tecniche / Re: Funzione Sovrascrivibili
« il: 10 Marzo 2014, 17:27:06 »
Sinceramente stò solo cercando di farmi un idea sulle potenzialità e limiti da Gambas.. Trovo la documentazione caotica o poco esaustiva.

Tanto per fare un paragone con Visual Basic.Net per definire un Metodo ridefinibile utilizzo la parola chiave Overridable ( se non la uso tale metodo non è ridefinibile ).
Per ridefinirlo utilizzo Overrides... Poi se voglio nascondere il metodo della classe base utilizzo Shadows...
Per l'Overloading utilizzo la parola chiave Overloads...
Nel caso voglio che una classe base ( astratta ) debba per forza essere ereditata utilizzo MustInherits...

Cercavo solo di fare un paragone tra i due linguaggi.. poi decidò come procedere...

Grazie

7
Domande tecniche / Re: Funzione Sovrascrivibili
« il: 10 Marzo 2014, 14:57:56 »
http://it.wikipedia.org/wiki/Overriding

Metodo Ridefinito nella Classe Derivata ....

8
Domande tecniche / Funzione Sovrascrivibili
« il: 10 Marzo 2014, 14:42:17 »
Mi sembra di capire che ogni funzione può essere sovrascitta in una classe derivata..
1. Ma nel caso volessi impedire ad una funzione specifica di essere sovrascritta in una classe derivata come posso fare ?
2. L'IDE di Gambas non prevede di creare nelle classi derivate le funzioni che posso essere sovrascritte ?

Pagine: [1]