Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-03-2003, 13:07   #1
tas
Senior Member
 
L'Avatar di tas
 
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
C++ e template

Qual è il vantaggio (se c'è) nell'uso dei templates in C++, rispetto alla programmazione tradizionale (OOP)? Sto leggendo un libro non proprio recente sulla creazione di componenti COM con ATL (Active Template Library), ma credo di non aver capito i concetti di base che stanno dietro a questa libreria! Perchè non usare l'ereditarietà e il polimorfismo, come fa MFC?
__________________
Chi non cerca trova.
tas è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2003, 13:59   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
I template permettono di lavorare virtualmente con qualunque oggetto basta che supporti gli operatori che si usano nell'implementazione della classe o della funzione con il template...
Codice:
#include <iostream>

using namespace std;

template <class T> 
void MySwap( T& a, T& b )
{
    T c(a);
    a = b; 
    b = c;
}

int main(int argc, char *argv[])
{
  int a = 5, b = 10;
  cout << a << " " << b << endl;

  MySwap<int>(a,b);
  cout << a << " " << b << endl;

  double aa = 5.22, bb = 10.22;
  cout << aa << " " << bb << endl;

  MySwap<double>(aa,bb);
  cout << aa << " " << bb << endl;
  
  return 0;
}
In questo modo la funzione MySwap può essere utilizzata con qualsiasi tipo di dato...int, float, char, strutture e classi (basta che abbiano il costruttore di copia pubblico)...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2003, 14:02   #3
Kleidemos
Bannato
 
L'Avatar di Kleidemos
 
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
Re: C++ e template

Quote:
Originally posted by "tas"

Qual è il vantaggio (se c'è) nell'uso dei templates in C++, rispetto alla programmazione tradizionale (OOP)? Sto leggendo un libro non proprio recente sulla creazione di componenti COM con ATL (Active Template Library), ma credo di non aver capito i concetti di base che stanno dietro a questa libreria! Perchè non usare l'ereditarietà e il polimorfismo, come fa MFC?
io ho le idee confuse ..............ma tu + di me!
cionci............rispondi al mio 3d sul libro??


Tnk
Kleidemos è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2003, 14:15   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non lo conosco...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2003, 15:40   #5
tas
Senior Member
 
L'Avatar di tas
 
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
Cionci, nel tuo esempio usi la stessa funzione con due tipi diversi: int e double. Vuol dire che esistono, nel file compilato, due versioni separate della stessa classe? (una per il tipo int e una per il tipo double?). Te lo chiedo perchè mi sembra di aver capito che i template vengono gestiti in fase di precompilazione, giusto?
__________________
Chi non cerca trova.
tas è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2003, 15:55   #6
tas
Senior Member
 
L'Avatar di tas
 
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
Re: C++ e template

Quote:
Originally posted by "Kleidemos"



io ho le idee confuse ..............ma tu + di me!
cionci............rispondi al mio 3d sul libro??


Tnk
Se non avessi avuto le idee confuse non avrei postato sul forum... E' mia abitudine rispondere ai post di altri utenti solo quando penso di poter dare un aiuto concreto... tu lo fai?
__________________
Chi non cerca trova.
tas è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2003, 16:40   #7
Kleidemos
Bannato
 
L'Avatar di Kleidemos
 
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
Re: C++ e template

Quote:
Originally posted by "tas"


Se non avessi avuto le idee confuse non avrei postato sul forum... E' mia abitudine rispondere ai post di altri utenti solo quando penso di poter dare un aiuto concreto... tu lo fai?
chiedo skusa
Leggi qui cmq:
http://www.sgi.com/tech/stl/
Kleidemos è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2003, 17:16   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sì, in pratica nel file compilato c'è sia MySwap<int>(int &, int &amp che MySwap<double>(int &, int &amp...

Dal punto di vista della programmazione ci sono notevoli e ovvi vantaggi sulla velocità di scrittura e sulla riutilizzabilità del codice...


Ad esempio la classe vector della STL può essere usata virtualmente con qualsiasi altro tipo di dato...
Codice:
vector<int> v1;
vector<float> v2;
vector<double> v3;

class c {...};

vector<c> vc;
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2003, 18:13   #9
soalle
Senior Member
 
L'Avatar di soalle
 
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
Piccolo tip: tra breve dovrebbero fare la loro comparsa i templates (cosidetti generici) anche in Java e .NET (la versione di Java lascia un po' a desiderare ma ci sono già proposte per migliorarla...)
soalle è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2003, 18:16   #10
Kleidemos
Bannato
 
L'Avatar di Kleidemos
 
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
ho letto sull'ultimo pc professionale l'articolo su questi nel Java e su programazione.it parlano di questo intro in C#..................ma quanto copiano?
Kleidemos è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2003, 18:20   #11
soalle
Senior Member
 
L'Avatar di soalle
 
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
Non ho letto niente a riguardo... mi puoi dare il link della pagina di programmazione...

Comunque è vero che copiano.... in un documento della MS citano e dicono espressamente che la loro soluzione è simile (e naturalmente migliore) di quella di due miei prof dell'uni... questa soluzione dei prof è quella attualmente sotto studio dalla sun per una migliore futura implementazione dei generici... quella attuale (GJ dovrebbe uscire con Java 1.5) di Java fa effettivamente schifo...
soalle è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2003, 18:31   #12
Kleidemos
Bannato
 
L'Avatar di Kleidemos
 
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
http://www.programmazione.it/index.php?entity=enews&idNews=6144&idArea=1
Kleidemos è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
d-Matrix sceglie NVIDIA NVLink Fusion pe...
BenQ MA270S o Apple Studio Display? Entr...
Apple Watch Series 12 e Ultra 4 su Amazo...
Apple AirPods 5 disponibili su Amazon a ...
Bending Spoons colpisce ancora: acquisit...
Il Tesla Cybercab non ha il volante ma p...
AMD aggiorna ancora AM4 e AM5: arrivano ...
Un graffio è sufficiente a far de...
Airbus realizzerà altri 229 satel...
Arianespace lancerà altri satelli...
Eutelsat ha annunciato di aver affidato ...
PLD Space ha annunciato il nuovo razzo s...
CMF Clip Pro, tanta autonomia e design u...
Tre leggende del rally sbarcano in Asset...
iPhone 18 Pro Max, il chip A20 Pro mostr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:12.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v