Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Quattro modi di indossarlo, stessa app del Plaud Note Pro e integrazione con il desktop. Il registratore IA da indossare di Plaud eccelle in mobilità, ma resta vincolato all'abbonamento ed è facile da perdere
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Xiaomi ha portato Redmi Watch 6 anche sul mercato italiano, puntando su un display AMOLED da 2,07 pollici con picco di luminosità a 2000 nit, frame in alluminio da 9,9mm e un'autonomia dichiarata di 12 giorni. Lo smartwatch gira su HyperOS 3 e integra GPS, Bluetooth 5.4 e oltre 150 sport mode. Il tutto a meno di 100 euro
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Con 22 tasti, il pulsante 5D, lo Shift Mode e il sensore PixArt 3395 da 26.000 DPI, il nuovo mouse wireless di Mad Catz si rivolge in modo preciso ai giocatori di MMO e RPG. Ma chi conosce già il R.A.T. 8+ ADV si accorgerà subito di quanto i due prodotti condividano, e di dove invece divergono
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


Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare Reolink OMVI 3i WiFi: videosorveglianza pi&ugrav...
Virtua Fighter è tornato e non &e...
Il ritorno di Fumito Ueda, autore di Sha...
Cooler Master svela GPU Shield, la nuova...
Samsung Galaxy S27 Pro: sarà lui ...
Così Google ha ottimizzato Chrome...
Xiaomi non cambia idea: il display poste...
LG presenta in Italia le gamme TV Micro ...
Sette anni dopo l'annuncio, The Wolf Amo...
'Non avrete aumenti': la decisione shock...
TIM lancia il Pass Mondiali DAZN: 104 pa...
Tesla Roadster, promessa o miraggio? La ...
Mark Hamilton, la tavola periodica del m...
Hanger 13 annuncia Uomo d'Onore: espansi...
La battaglia delle HBM4 entra nel vivo: ...
Dopo 12 anni torna Alien: Isolation. Ecc...
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: 20:34.


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