Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16-ak0001nl combina RTX 5080 Laptop e Ryzen AI 9 HX 375 in un desktop replacement potente e ben raffreddato, con display 240 Hz e dotazione completa. Autonomia limitata e calibrazione non perfetta frenano l'entusiasmo, ma a 2.609 euro è tra le proposte più interessanti della categoria.
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Google ha appena rinnovato la sua celebre serie A con il Pixel 10a, lo smartphone della serie più conveniente se consideriamo il rapporto tra costo e prestazioni. Con il chip Tensor G4, un design raffinato soprattutto sul retro e l'integrazione profonda di Gemini, il colosso di Mountain View promette un'esperienza premium a un prezzo accessibile. E il retro non ha nessuno scalino
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-05-2011, 14:55   #1
dileoa
Member
 
Iscritto dal: Sep 2005
Messaggi: 80
[visual c++] operatore new e costruttori con argomenti

Salve
sto scrivendo una applicazione, in cui devo creare un array di oggetti della classe DGeneric passando come argomento un intero Parameter.
La sintassi dovrebbe essere:
Codice:
DGeneric* Generic;
Generic = new DGeneric[10](Parameter);
Il compilatore Visual C++ 2008 però non mi riconosce le istruzioni anzi ho trovato su internet che Visual non accetta tale costrutto.
Come posso ovviare al problema?
Grazie
ADL
dileoa è offline   Rispondi citando il messaggio o parte di esso
Old 09-05-2011, 15:37   #2
Efem
Member
 
Iscritto dal: Apr 2011
Messaggi: 59
Prova così:

Codice:
DGeneric* Generic[10];
int i;

for( i=0; i<10; i++ )
    Generic[i] = new DGeneric( i );
Efem è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2011, 14:34   #3
dileoa
Member
 
Iscritto dal: Sep 2005
Messaggi: 80
Sorry,
nel tentativo di semplificare la lettura, mi sono reso conto di essere stato troppo generico nella descrizione del problema. Il listato corretto è:
Codice:
class DFool
{
  public:
    ...
    DFool(int i,DArgument Argument);
  private:
    DGeneric* Generic;
    ...
}

...

DFool::DFool(int i,DArgument Argument)
{
  ...
  Generic = new DGeneric[i](Argument);
  ...
}
Quindi il costruttore della classe DFool deve creare un array di oggetti DGeneric inizializzati con l'oggetto Argument. La dimensione dell'array i non è nota a priori.
Il compilatore Visual C++ 2008 non riconosce la sintassi new DGeneric[...](...) (ho trovato su internet che Visual C++ non accetta tale costrutto).
Come posso ovviare al problema?

ADL
dileoa è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2011, 16:36   #4
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Abbastanza semplicemente così:

Codice:
class DFool
{
  public:
    ...
    DFool(int i,DArgument Argument);
  private:
    DGeneric* Generic;
    ...
}

...

DFool::DFool(int i,DArgument Argument)
{
  Generic = new Generic[i];
  for (int j = 0; j < i; j++)
      Generic[i] = new DGeneric(Argument);
  ...
}
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2011, 16:43   #5
dileoa
Member
 
Iscritto dal: Sep 2005
Messaggi: 80
Ok, ho provato:
Codice:
Volee=new DVolee[GetSessionVolee()];
for(int i=0;i<GetSessionVolee();i++)Volee[i]=new DVolee(GetVoleeShoots());
dove GetSessionVolee() e GetVoleeShoots() restituiscono degli interi. Questo è quello che mi risponde il compilatore:
Codice:
1> error C2679: '=' binario: non è stato trovato alcun operatore che accetti un operando destro di tipo 'Project_Amaltea::DVolee *'. È anche possibile che non vi siano conversioni accettabili.
1> c:\users\antonio\documents\visual studio 2008\project_amaltea\project_amaltea\DVolee.h(16): potrebbe essere 'Project_Amaltea::DVolee &Project_Amaltea::DVolee::operator =(const Project_Amaltea::DVolee &)'
1> durante la ricerca di corrispondenza con l'elenco di argomenti '(Project_Amaltea::DVolee, Project_Amaltea::DVolee *)'
ADL

Ultima modifica di dileoa : 10-05-2011 alle 20:21.
dileoa è offline   Rispondi citando il messaggio o parte di esso
Old 11-05-2011, 10:32   #6
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Scusami, nella fretta di rispondere mi sono dimenticato delle basi
Ovviamente Generic deve essere un array di puntatori a DGeneric
Codice:
class DFool
{
  public:
    ...
    DFool(int i,DArgument Argument);
  private:
    DGeneric** Generic;
    ...
}

...

DFool::DFool(int i,DArgument Argument)
{
  Generic = new DGeneric*[i];
  for (int j = 0; j < i; j++)
      Generic[i] = new DGeneric(Argument);
  ...
}
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 11-05-2011, 11:04   #7
dileoa
Member
 
Iscritto dal: Sep 2005
Messaggi: 80
Ho capito. Mi sembra una buona idea. L'unica cosa che così ho bisogno di due indici per puntare un singolo oggetto. Confermi?
Codice:
Generic[i][j].Fool();
dileoa è offline   Rispondi citando il messaggio o parte di esso
Old 11-05-2011, 12:48   #8
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da dileoa Guarda i messaggi
Ho capito. Mi sembra una buona idea. L'unica cosa che così ho bisogno di due indici per puntare un singolo oggetto. Confermi?
Codice:
Generic[i][j].Fool();
E perchè mai?
Codice:
Generic[i]->Fool();
tomminno è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026 6G, da rete che trasporta dati a rete intelligen...
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso CHUWI CoreBook Air alla prova: design premium, b...
Il nuovo MacBook Neo ha una memoria SSD ...
Xbox Project Helix, le prime specifiche ...
Annunci pubblicitari sulla TV quando cam...
Prezzi aumentati del 50% durante la nott...
Sconti studiati per singolo utente: Sony...
Addio alla Kia Niro EV, il crossover sar...
Apple crede nel suo iPhone Fold: la prod...
Fortnite, un nuovo listino per i pacchet...
Ecco i nuovi Sonos Play ed Era 100 SL: d...
Razer svela il futuro del gaming potenzi...
Tre robot Narwal in offerta: pulizia aut...
Gracenote denuncia OpenAI: ChatGPT addes...
Microsoft AI Tour Milano: dall'efficienz...
Asus ExpertBook Ultra: Intel Core Ultra ...
Intel presenta i processori desktop Core...
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: 05:49.


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