Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
be quiet! debutta nel settore mouse da gaming con Dark Perk Ergo e Dark Perk Sym: due modelli gemelli per specifiche, con polling rate di 8.000 Hz anche in wireless, sensore PixArt PAW3950 da 32.000 DPI e autonomia dichiarata fino a 110 ore. Nel test, a 8.000 Hz si arriva a circa 30 ore reali, con ricarica completa in un'ora e mezza
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-07-2011, 15: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, 16: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, 21: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, 21: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, 22: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, 22: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, 22: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, 22: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, 22: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, 22: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, 23: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, 23: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


Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Enrique Lores, CEO e presidente di HP, l...
SoftBank e Intel preparano la 'memoria d...
Il blocco dei porno per i minori è...
AMD: i nuovi processori Zen 6 saranno (i...
Ancora aumenti per le schede video Radeo...
Sonos presenta Amp Multi a ISE 2026: il ...
Una funzione esclusiva dei Pixel potrebb...
La Cina vieta ufficialmente le maniglie ...
HP e lavoro ibrido: le nuove cuffie Poly...
MSI sta lavorando a un dissipatore ottim...
27 offerte Amazon, le prime 5 in elenco ...
Il telescopio spaziale James Webb ha cre...
Il reboot di Painkiller tenta il rilanci...
7 smartphone in super offerta su Amazon,...
Ring abbassa i prezzi su Amazon: videoci...
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: 17:20.


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