Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
NXTPAPER 60 Ultra è il primo smartphone con tecnologia NXTPAPER 4.0 per il display, un ampio IPS da 7,2 pollici. Con finitura anti-riflesso, processore MediaTek Dimensity 7400, fotocamera periscopica e modalità Max Ink per il detox digitale, NXTPAPER 60 Ultra punta a essere il riferimento tra gli smartphone pensati per il benessere degli occhi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-07-2011, 14:14   #1
L4ky
Senior Member
 
L'Avatar di L4ky
 
Iscritto dal: May 2008
Messaggi: 1566
[C]Classe di struct

Buongiorno a tutti. Vorrei chiedervi aiuto in merito all utilizzo delle struct dentro una classe.
Praticamente io devo creare il gioco della tombola: estrarre i numeri, generare schede ecc.
Ho pensato dunque di fare la struct player con dentro un vettore di char per il nome, e un array di int per la scheda del player.
Ora se nella classe definisco la variabile giocatore (o un vettore di essa) al momento della compilazione ovunque vi è un richiamo a una variabile della struct mi da errori:
Quote:
35 C:\Users\Portatile\Desktop\tombola.cpp expected unqualified-id before '.' token
La riga dell errore è:
Quote:
tombola.player[a].scheda[i][j] = 0;
Questa è dentro a 3 for, uno per girare tutti i giocatori, e 2 per la matrice di interi della scheda.

Cosa sbaglio?
__________________
CM Obsidian 750D - Corsair TX650M - AMD Ryzen 7 3700x - Asus TUF B550-PLUS - nVidia Gigabyte GTX 1060 6GB G1 Gaming - Noctua D15S - Corsair Vengeance Pro 3600MHz 16GB - 2xHP x27i - Razer Deathadder - Logitech G15 v1 nVidia Edition- Roccat Taito King-Size - Fastweb (2011) | Alice(2015) | Alice(2016) | Eolo 30Mb (2016) | Wind3 4G Flat (2019) | PF AIR 100 (2021)
L4ky è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 15:29   #2
kevinpirola
Member
 
Iscritto dal: Sep 2010
Messaggi: 102
amico.. se non posti anche il resto è impossibile saperlo....


è come se andassi dal meccanico con la macchina che fa un rumore alla trasmissione e gli portassi solo la cinghia.......
kevinpirola è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 20:37   #3
L4ky
Senior Member
 
L'Avatar di L4ky
 
Iscritto dal: May 2008
Messaggi: 1566
Quote:
Originariamente inviato da kevinpirola Guarda i messaggi
amico.. se non posti anche il resto è impossibile saperlo....


è come se andassi dal meccanico con la macchina che fa un rumore alla trasmissione e gli portassi solo la cinghia.......
Ripeto che l errore lo da SOLO e ripeto SOLO dove scrivo cose tipo:
tombola.player.nome ovvero in cui richiamo un dato della struct.

Comunque ecco la parte della struct e della classe:
Codice:
struct players{
    char nome[30];
    int scheda[5][3];
};

typedef struct players playerS;

class tombola{
    public:
    tombola();
    void estrai_num(); // controlla che non sia uscito e sia valido
    void win_check(); // ambo, terna, quaterna, cinquina, tombola
    void generascheda(); // controlla ripetizioni, non piu di 3 stessa decina   
    void stato();
    private:
    playerS player[100];
    int uscite[90];
    
};
__________________
CM Obsidian 750D - Corsair TX650M - AMD Ryzen 7 3700x - Asus TUF B550-PLUS - nVidia Gigabyte GTX 1060 6GB G1 Gaming - Noctua D15S - Corsair Vengeance Pro 3600MHz 16GB - 2xHP x27i - Razer Deathadder - Logitech G15 v1 nVidia Edition- Roccat Taito King-Size - Fastweb (2011) | Alice(2015) | Alice(2016) | Eolo 30Mb (2016) | Wind3 4G Flat (2019) | PF AIR 100 (2021)
L4ky è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 20:56   #4
kevinpirola
Member
 
Iscritto dal: Sep 2010
Messaggi: 102
sicuro che non siano delle variabili private che hanno bisogno di un metodo "get" ?

prova a mettere un metodo get che ritorna la variabile che ti serve, secondo me dovresti risolvere
kevinpirola è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 21:02   #5
L4ky
Senior Member
 
L'Avatar di L4ky
 
Iscritto dal: May 2008
Messaggi: 1566
Quote:
Originariamente inviato da kevinpirola Guarda i messaggi
sicuro che non siano delle variabili private che hanno bisogno di un metodo "get" ?

prova a mettere un metodo get che ritorna la variabile che ti serve, secondo me dovresti risolvere
Che sarebbe? Perdona la mia ignoranza ma ho fatto il primo anno di informatica e ho studiato C solo quest anno.
__________________
CM Obsidian 750D - Corsair TX650M - AMD Ryzen 7 3700x - Asus TUF B550-PLUS - nVidia Gigabyte GTX 1060 6GB G1 Gaming - Noctua D15S - Corsair Vengeance Pro 3600MHz 16GB - 2xHP x27i - Razer Deathadder - Logitech G15 v1 nVidia Edition- Roccat Taito King-Size - Fastweb (2011) | Alice(2015) | Alice(2016) | Eolo 30Mb (2016) | Wind3 4G Flat (2019) | PF AIR 100 (2021)
L4ky è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 21:18   #6
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
significa che forse stai provando ad accedere a campi privati dall'esterno della classe, cosa che non puoi fare, e la soluzione corretta per mantenere l'incapsulamento è un metodo pubblico, tipo

Codice:
playerS* getPlayer(void) const
{
  return player;
}
volendo puoi ritornare un const playerS* se vuoi che possa solo essere letto l'array
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 21:30   #7
L4ky
Senior Member
 
L'Avatar di L4ky
 
Iscritto dal: May 2008
Messaggi: 1566
Quote:
Originariamente inviato da tuccio` Guarda i messaggi
significa che forse stai provando ad accedere a campi privati dall'esterno della classe, cosa che non puoi fare, e la soluzione corretta per mantenere l'incapsulamento è un metodo pubblico, tipo

Codice:
playerS* getPlayer(void) const
{
  return player;
}
volendo puoi ritornare un const playerS* se vuoi che possa solo essere letto l'array
Troppo complicato per me. Eppure sto accedendo dal costruttore della classe...
__________________
CM Obsidian 750D - Corsair TX650M - AMD Ryzen 7 3700x - Asus TUF B550-PLUS - nVidia Gigabyte GTX 1060 6GB G1 Gaming - Noctua D15S - Corsair Vengeance Pro 3600MHz 16GB - 2xHP x27i - Razer Deathadder - Logitech G15 v1 nVidia Edition- Roccat Taito King-Size - Fastweb (2011) | Alice(2015) | Alice(2016) | Eolo 30Mb (2016) | Wind3 4G Flat (2019) | PF AIR 100 (2021)
L4ky è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 21:44   #8
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
e allora non è quello il problema, il discorso è che se non incolli il codice è dura capirlo
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 21:50   #9
L4ky
Senior Member
 
L'Avatar di L4ky
 
Iscritto dal: May 2008
Messaggi: 1566
Codice:
#include <iostream>
#include <cstdlib>

using namespace std;

int max_players=0;

struct players{
    char nome[30];
    int scheda[5][3];
};

typedef struct players playerS;

class tombola{
    public:
    tombola();
    void estrai_num(); // controlla che non sia uscito e sia valido
    void win_check(); // ambo, terna, quaterna, cinquina, tombola
    void generascheda(); // controlla ripetizioni, non piu di 3 stessa decina   
    void stato();
    private:
    playerS player[100];
    int uscite[90];
    
};

tombola::tombola(){
        for(int i=0; i < 100; i++){
         //tombola.player[i].nome = "";
    }
    for(int a=0; a < 100; a++){
    for(int i=0; i < 5; i++){
        for(int j=0; j < 3; j++){
         tombola.player[a].scheda[i][j] = 0;
    }}}
}


void tombola::stato(){
    for(int i=0; i < max_players; i++){
        cout << endl << "Nome: " << tombola.player[i].nome << endl << " - Schedina: ";
        for(int a=0; a < 5; a++){
            for(int b=0; b < 3; b++){
                    cout << tombola.player[i].scheda[a][b];
                }
            cout << endl;
            }
        }
    cout << endl;
}



int main(){
    tombola p;
    cout << "Numero giocatori: ";
    cin >> max_players;
    p.stato();
    system("PAUSE");
    return 0;
}
__________________
CM Obsidian 750D - Corsair TX650M - AMD Ryzen 7 3700x - Asus TUF B550-PLUS - nVidia Gigabyte GTX 1060 6GB G1 Gaming - Noctua D15S - Corsair Vengeance Pro 3600MHz 16GB - 2xHP x27i - Razer Deathadder - Logitech G15 v1 nVidia Edition- Roccat Taito King-Size - Fastweb (2011) | Alice(2015) | Alice(2016) | Eolo 30Mb (2016) | Wind3 4G Flat (2019) | PF AIR 100 (2021)
L4ky è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 21:58   #10
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
il "." serve a riferirsi ai campi delle istanze, se ti riferisci a tombola come classe devi usare ::, ma comunque nel tuo caso non serve, ti basta scrivere player[a].scheda[i][j] per riferirti al campo dell'istanza su cui viene invocato il metodo
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 22:04   #11
kevinpirola
Member
 
Iscritto dal: Sep 2010
Messaggi: 102
Quote:
Originariamente inviato da tuccio` Guarda i messaggi
il "." serve a riferirsi ai campi delle istanze, se ti riferisci a tombola come classe devi usare ::, ma comunque nel tuo caso non serve, ti basta scrivere player[a].scheda[i][j] per riferirti al campo dell'istanza su cui viene invocato il metodo
quote
kevinpirola è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 22:28   #12
L4ky
Senior Member
 
L'Avatar di L4ky
 
Iscritto dal: May 2008
Messaggi: 1566
Grazie mille!!
__________________
CM Obsidian 750D - Corsair TX650M - AMD Ryzen 7 3700x - Asus TUF B550-PLUS - nVidia Gigabyte GTX 1060 6GB G1 Gaming - Noctua D15S - Corsair Vengeance Pro 3600MHz 16GB - 2xHP x27i - Razer Deathadder - Logitech G15 v1 nVidia Edition- Roccat Taito King-Size - Fastweb (2011) | Alice(2015) | Alice(2016) | Eolo 30Mb (2016) | Wind3 4G Flat (2019) | PF AIR 100 (2021)
L4ky è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
The Social Reckoning: il seguito di The ...
iPhone 16 si trova ora su Amazon a soli ...
Amazon fa a pezzi i prezzi dei monitor g...
Componenti hardware e periferiche PC a p...
Pianeta in crisi: 7 su 9 limiti vitali g...
Galaxy S25 FE con taglio di prezzo di 10...
4 robot aspirapolvere e 3 scope elettric...
Nuovissimi Xiaomi 15T e 15T Pro con tagl...
Le agenzie federali americane potranno u...
Smartphone pieghevoli sempre più ...
LG svela le Easy TV, una nuova gamma di ...
L'equipaggio della missione Shenzhou-20 ...
Possibili detriti spaziali del razzo cin...
Amazon distrugge i prezzi: TV OLED LG, i...
Trump studia dazi fino al 100% per sping...
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: 16:40.


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