Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
BOOX Go 6 Gen II porta per la prima volta il supporto allo stilo su un e-reader da 6 pollici, affiancando 3 GB di RAM al collaudato Snapdragon 665 e un design rivisto con scocca posteriore a costolature. Su carta la proposta è interessante, ma Android 11 fuori supporto, l'assenza di un alloggiamento per il pennino e un'autonomia ridotta rispetto agli e-reader tradizionali sono i compromessi da accettare
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Lenovo Idea Tab Plus prova a portare un display da 12,1 pollici 2.5K, quattro speaker Dolby Atmos e una batteria da 10.200 mAh sotto la soglia psicologica dei 300 euro, penna inclusa. Lo abbiamo usato per oltre una settimana per capire dove l'azienda ha tagliato e dove invece ha tenuto il punto
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea
L'euro digitale è una valuta fiat che entrerà in vigore nei prossimi anni. L'obiettivo principale è quello di ridurre la dipendenza dalle piattaforme di pagamento digitali statunitensi e offrire ai cittadini un modo semplice per trasferire denaro. Anche offline, anche in maniera (pseudo)anonima
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-06-2009, 18:02   #1
Ikon O'Cluster
Registered User
 
Iscritto dal: May 2009
Messaggi: 300
[C++] Si può fare?

Avrei una classe template di questo tipo:

Codice:
template <class Type> class SamplesBase;
Che è astratta. E ho due classi da questa derivate:

Codice:
template <class Type>
class DelayBuffer : class SamplesBase<Type>;

template <class Type, class SummaryType>
class SHSummaryBuffer : class SamplesBase<Type>;
Queste classi nel costruttore hanno un parametro int (con valore default) che ne dimensiona alcuni membri. A questo punto ho:

Codice:
class MiaClasse {

protected:

	unsigned char dim_;

	std::vector<SHSummaryBuffer<Tipo1, Tipo2>> history_

	std::vector<DelayBuffer<Tipo1>> cbuffer_

	//...

};
Volevo sapere come posso fare per far in modo che al momento della costruzione di MiaClasse, gli elementi di tipo DelayBuffer<Tipo1> e SHSummaryBuffer<Tipo1, Tipo2> vengano costruiti con un valore int da me specificato e non con il valore di default usato dal costruttore default.
Grazie
Ikon O'Cluster è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2009, 18:09   #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
Puoi inserire nel vettore elementi che abbiano un valore intero diverso con push_back (ad esempio):

cbuffer_.push_back(DelayBuffer<Tipo1>(intero));

Ovviamente deve essere definito il costruttore di copia nel caso di memoria dinamica.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2009, 18:18   #3
Ikon O'Cluster
Registered User
 
Iscritto dal: May 2009
Messaggi: 300
Eh... mi scocciavo
Ikon O'Cluster è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2009, 18:20   #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
Al limite c'è questa per inserire K elementi tutti uguali
http://www.cplusplus.com/reference/stl/vector/insert/
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2009, 18:29   #5
Ikon O'Cluster
Registered User
 
Iscritto dal: May 2009
Messaggi: 300
non male
Ikon O'Cluster è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2009, 18:47   #6
Ikon O'Cluster
Registered User
 
Iscritto dal: May 2009
Messaggi: 300
Alla distruzione di MiaClasse quei vector vengono puliti come si deve??? Non alloco niente dinamicamente, da nessuna parte...
Ikon O'Cluster è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2009, 18:48   #7
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ì, dovrebbero.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2009, 18:50   #8
Ikon O'Cluster
Registered User
 
Iscritto dal: May 2009
Messaggi: 300
Uhm..... non è una bella risposta
Ikon O'Cluster è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2009, 18:53   #9
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 questo caso sì, dipende anche un po' da come la usi...se non allochi niente dinamicamente non ci possono essere problemi.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2009, 19:11   #10
Ikon O'Cluster
Registered User
 
Iscritto dal: May 2009
Messaggi: 300
E guarda un po' qui...
Codice:
std::vector<SamplesBase<Tipo1, Tipo2>> history_;
std::vector<SamplesBase<Tipo2, Tipo2>> cbuffer_;

void init() {
history_.insert(history_.begin(), N, SHSummaryBuffer<Tipo1, Tipo2>(M));
cbuffer_.insert(cbuffer_.begin(), N, DelayBuffer<Tipo2, Tipo2>(K));
}
Essendo le definizioni:

Codice:
template <class Type, class SummaryType>
class SamplesBase;

template <class Type, class SummaryType>
class DelayBuffer : class SamplesBase<Type, SummaryType>;

template <class Type, class SummaryType>
class SHSummaryBuffer : class SamplesBase<Type, SummaryType>;
Dovrebbe andare tutto OK, nell'inizializzazione. Ma se si considera che:

Codice:
virtual bool get(const SummaryType& t) const = 0;
E' una funzione di SamplesBase definita delle sottoclassi, quando faccio:

Codice:
history_[i].get(obj1);
cbuffer_[j].get(obj2);
Va tutto OK??? Cioè mi chiama nel primo caso SHSummaryBuffer::get e nel secondo DelayBuffer::get? Non posso provare perchè sto ancora in fase troppo preliminare, ma se così non si può fare poi x cambiare perdo troppo tempo...

P.S.: get() è virtual anche nelle sottoclassi.
Ikon O'Cluster è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2009, 19:15   #11
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
E perché non dovrebbe andare ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2009, 22:18   #12
Ikon O'Cluster
Registered User
 
Iscritto dal: May 2009
Messaggi: 300
Sto modificando in continuazione... non funziona niente. Accidenti ai template... sono la cosa più orripilante che esista nella programmazione!
Mi spiego:

Codice:
template <class Type>
class SamplesBase {
	protected:
		std::list<Type*> base_;

	public:
		SamplesBase(unsigned char dim = 0) {
			base_.insert(base_.begin(), dim+1, (Type*)NULL);
		}
};

template <class Type>
class DelayBuffer : public SamplesBase<Type> {
	public:
		DelayBuffer(unsigned char dim = 0) : SamplesBase(dim) {}
};
Ovviamente ho riportato solo la parte di implementazione che mi interessa. Mi sapete dire perchè:

Codice:
In constructor ‘DelayBuffer<Type>::DelayBuffer(unsigned char)’:
error: class ‘DelayBuffer<Type>’ does not have any field named ‘SamplesBase’
????
Ikon O'Cluster è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2009, 22:27   #13
Ikon O'Cluster
Registered User
 
Iscritto dal: May 2009
Messaggi: 300
Ok mancava <Type>... Ditemi però perchè la funzione della classe DelayBuffer:

Codice:
virtual const Type* get() const {
return base_.front();
}
Non compila così... dice che base_ non è dichiarato, ma se scrivo SamplesBase<Type>::base_ lo vede!!!
Ikon O'Cluster è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2009, 09:14   #14
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
Ma questa get dove è dichiarata ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2009, 10:23   #15
Ikon O'Cluster
Registered User
 
Iscritto dal: May 2009
Messaggi: 300
Da nessuna parte più... Ti accorgi che stai sbagliando tutto e che bisogna progettare a modo proprio quando per fare qualcosa di semplice cominci a romperti i maroni
Ikon O'Cluster è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea Oltre il contante e le crypto: tutto sull'Euro D...
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Piccolo è bello: Cisco presenta A...
Z.AI avvia un data center da 1 gigawatt....
Microsoft e Mistral annunciano un accord...
Grazie al Very Large Telescope potrebbe ...
Sony FX5: RAW interno X-OCN e Open Gate ...
AMD e Anthropic, affare fatto: 5 miliard...
Cyber Arena Tour 2026, WINDTRE BUSINESS ...
Wistron ha aperto il primo stabilimento ...
"Così è facile perder...
Peak Design ripensa la staffa a L: il tr...
Samsung: ufficiale la serie Galaxy Z Fol...
Galaxy Watch Ultra2 e Watch9 ufficiali: ...
Un razzo spaziale Falcon 9 ha lanciato l...
Microlino: dal rischio di fallimento all...
SpaceX, uno stadio di Falcon 9 si schian...
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: 00:49.


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