Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
Nelle ultime settimane abbiamo provato tre delle proposte top di gamma di NZXT nelle categorie case, dissipatori e ventole. Rispettivamente, parliamo dell'H9 Flow RGB+, Kraken Elite 420 e F140X. Si tratta, chiaramente, di prodotti di fascia alta che si rivolgono agli utenti DIY che desiderano il massimo per la propria build. Tuttavia, mentre i primi due dispositivi mantengono questa direzione, le ventole purtroppo hanno mostrato qualche tallone d'Achille di troppo
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-08-2015, 16:07   #1
ValeLL94
Junior Member
 
Iscritto dal: Aug 2015
Messaggi: 5
C++ Liste problema

Ciao ragazzi, sto iniziando a studiare le liste. Solo che ancora non riesco a capirle bene, anzi non le comprendo proprio A fine settembre avrei un'esame e sono un po ne guai. Potreste aiutarmi ? Vorrei partire con un'esercizio molto semplice. Mi basterebbe l'inserimento di n interi in una lista e la visualizzazione. (ovviamente devo farlo con le classi e non con le struct) . Qualcuno saprebbe aiutarmi ? :ciao: :ciao:
ValeLL94 è offline   Rispondi citando il messaggio o parte di esso
Old 31-08-2015, 18:46   #2
leyfon
Member
 
Iscritto dal: Aug 2015
Messaggi: 85
Ma hai già creato le classi di liste? O puoi utilizzare qualche libreria?
leyfon è offline   Rispondi citando il messaggio o parte di esso
Old 31-08-2015, 22:55   #3
71106
Bannato
 
Iscritto dal: Nov 2014
Messaggi: 292
Quote:
Originariamente inviato da ValeLL94 Guarda i messaggi
(ovviamente devo farlo con le classi e non con le struct)
Classi e struct in C++ sono esattamente la stessa cosa a meno della visibilità di default, che è pubblica nel caso delle struct e privata nel caso delle classi. Per il resto le due keyword "class" e "struct" sono completamente intercambiabili.

Per l'esattezza esiste un caso in cui "class" non è intercambiabile con "struct" ma si tratta di template e probabilmente non ha nulla a che vedere con ciò che serve a te.

In generale io, che sono per i PODO (plain old data objects), consiglio sempre di evitare la keyword "class" e usare le "struct" per definire i tipi aggregati e "typename" per parametrizzare i template con variabili di tipo.

Il codice C++ che scrivo non contiene mai la parola "class".
71106 è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2015, 10:46   #4
Mex87
Member
 
Iscritto dal: Oct 2010
Messaggi: 52
Ma scusa, in questo modo non usi la potenzialità dell'OOP, (quindi no costruttori, metodi, distruttori, ereditarietà ecc...), credo che l'autore del topic debba svolgere l'esercizio utilizzando l'OOP e non la programmazione strutturata del C classico.

Premetto che parlo da semi-profano perchè non uso il C e tantomeno il C++ da un bel pò di tempo, quindi potrei aver scritto boiate.
Mex87 è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2015, 14:01   #5
ValeLL94
Junior Member
 
Iscritto dal: Aug 2015
Messaggi: 5
Non devo programmare con le struct, poichè devo programmare in OOP
ValeLL94 è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2015, 14:49   #6
Mex87
Member
 
Iscritto dal: Oct 2010
Messaggi: 52
ValeLL94, per andare avanti devi metterci del tuo, nessuno ti darà l'esercizio svolto.

Quindi scrivi quello sai fare e poi vedrò di darti una mano (per quello che mi ricordo)
Mex87 è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2015, 14:54   #7
ValeLL94
Junior Member
 
Iscritto dal: Aug 2015
Messaggi: 5
Il problema è che non so strutturare bene il programma perchè non ho capito come creare la lista.
ValeLL94 è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2015, 15:01   #8
ValeLL94
Junior Member
 
Iscritto dal: Aug 2015
Messaggi: 5
Vediamo cosa riesco a fare
ValeLL94 è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2015, 15:37   #9
ValeLL94
Junior Member
 
Iscritto dal: Aug 2015
Messaggi: 5
Codice:
#include<iostream>
#include<cstring>
using namespace std;

class nodo{

public:

    int value;
    nodo *next;
  
};

class lista{

private:
    
    int var;
    
public:
    
    lista();
    void inserimento();
    void visualizza();
    
    void setvar(int);
    void getvar();


};



int main(){

nodo *lista=NULL; // puntatore della lista
lista->inserimento(); //crea la lista
lista->visualizza(); //stampa lista


}

Io vorrei fare solo l'inserimento e la stampa della lista. Fino a qui è giusto ?
ValeLL94 è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2015, 17:33   #10
Mex87
Member
 
Iscritto dal: Oct 2010
Messaggi: 52
Bene, intanto avrai studiato che in C++ quando crei una classe devi dichiarare un costruttore ed un distruttore, poi il metodo inserimento cosa fa di preciso, crea ogni elemento della lista?
Perchè dentro "nodo" hai messo int value e dentro "lista" int var?

Nel main per come l'hai scritto per ora vedo errori, perchè l'oggetto di tipo nodo non ha i metodi inserimento e visualizza, senza contare che non è allocato.
Mex87 è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2015, 21:52   #11
Mex87
Member
 
Iscritto dal: Oct 2010
Messaggi: 52
Si, costruttore e distruttore non sono obbligatori, ma pensavo di fargli fare l'assegnazione a null del puntatore nel costruttore e la deallocazione della memoria nel distruttore.
Mex87 è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2015, 22:17   #12
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Istanziare lista a NULL e poi utilizzarla ti porta diretto ad un crash del programma.
Cosa servono i metodi setvar e getvar?

Generalmente una lista non si autopopola, ma è un contenitore a cui qualcuno passa dei dati, per cui al metodo inserimento almeno dovresti passare qualcosa come parametro.
Il metodo dovrebbe essere qualcosa tipo:
Codice:
void inserimento(oggettoDiQualcheTipo * data);
In questo metodo verrà aggiunto un nodo alla lista, se in testa o in coda dipende da come vuoi gestire la lista.
Poi un'interfaccia utile per la lista potrebbe essere costituita anche da un metodo per l'accesso diretto agli elementi e un metodo che ritorna la dimensione della lista, avanzando un altro po' ci sarebbe la gestione degli iteratori, ma lasciamo perdere per il momento.
Quanto alla visualizzazione è meglio che non sia la lista stessa a visualizzarsi, con l'accesso ai singoli elementi e alla dimensione chiunque può stampare il contenuto della lista nella maniera opportuna (su standard output, su file, ecc...).

Ovviamente questo solo a livello di interfaccia, la scrittura del codice dei vari metodi spetta a te.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2015, 12:46   #13
71106
Bannato
 
Iscritto dal: Nov 2014
Messaggi: 292
Quote:
Originariamente inviato da Mex87 Guarda i messaggi
Ma scusa, in questo modo non usi la potenzialità dell'OOP, (quindi no costruttori, metodi, distruttori, ereditarietà ecc...),
Lo dici tu. In C++ una struct può tranquillamente avere costruttori, distruttore, metodi, ed ereditare altre struct.

Ripeto, le keyword "class" e "struct" in C++ sono completamente intercambiabili salvo la visibilità predefinita dei membri, che è pubblica nel caso delle struct e privata nel caso delle classi.



Quote:
Originariamente inviato da ValeLL94 Guarda i messaggi
Non devo programmare con le struct, poichè devo programmare in OOP
Usare classi al posto delle struct in C++ non è in alcun modo prerogativa della programmazione orientata agli oggetti.

Ultima modifica di 71106 : 02-09-2015 alle 12:50.
71106 è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2015, 12:49   #14
71106
Bannato
 
Iscritto dal: Nov 2014
Messaggi: 292
Quote:
Originariamente inviato da ValeLL94 Guarda i messaggi
Fino a qui è giusto ?
Compila ed esegui; ti accorgerai che non lo è.
71106 è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2015, 15:02   #15
Mex87
Member
 
Iscritto dal: Oct 2010
Messaggi: 52
Quote:
Originariamente inviato da 71106 Guarda i messaggi
Lo dici tu. In C++ una struct può tranquillamente avere costruttori, distruttore, metodi, ed ereditare altre struct.
Hai ragione, non lo sapevo, ho sempre considerato lo struct come un modo per raggruppare dati.
Mex87 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
NIO chiede la standardizzazione di batte...
Da 80 mesi-uomo a poche ore: l'AI cambia...
In 2 settimane senza social il cervello ...
Amazon top 7 di oggi: 2 portatili intere...
SteamGPT trapela dal client Steam: ecco ...
Boom clamoroso per questo piccolo produt...
Amazon Luna saluta gli store di terze pa...
Windows Update non sarà più un incubo: M...
Stampante HP con Wi-Fi e 3 mesi di inchi...
Metro 2039 potrebbe essere il nuovo capi...
Call of Duty: Modern Warfare 4 l'uscita ...
Mega risparmi su Amazon Haul fino a mezz...
Il Blu-ray è davvero morto? Due a...
OpenAI punta sulla pubblicità in ...
Gmail, arriva la crittografia end-to-end...
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: 13:40.


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