Προς το περιεχόμενο

C++: error expected primary-expression


capitan

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σε όλους. Μου βγάζει το εξής σφάλμα στα σημεία που έχω σημειώσει στον κώδικα παρακάτω:

error: expected primary-expression before '{' token

error: expected ';' before '{' token

 

Αυτό που παραθέτω είναι ο constructor της Piece class και το pieceBoard ένας πινακας char [5][5], public μέλος της.

 

>#include "Piece.h"

Piece::Piece(char type){
   switch (type){
       case 'S':
           pieceBoard =
             [color="Red"] [b]{[/b][/color]
                   {0,0,0,0,0},
                   {0,0,0,0,0},
                   {0,0,2,1,0},
                   {0,0,1,1,0},
                   {0,0,0,0,0}
               };
           type='S';
           break;
       case 'I':
           pieceBoard =
               [color="Red"][b]{[/b][/color]
                   {0,0,0,0,0},
                   {0,0,0,0,0},
                   {0,1,2,1,1},
                   {0,0,0,0,0},
                   {0,0,0,0,0}
               };
           type='I';
           break;
       case 'N':
           pieceBoard =
              [color="Red"] [b]{[/b][/color]
                   {0,0,0,0,0},
                   {0,0,2,1,0},
                   {0,1,1,0,0},
                   {0,0,0,0,0},
                   {0,0,0,0,0}
               };
           type='N';
           break;
       case 'L':
           pieceBoard =
               [color="Red"][b]{[/b][/color]
                   {0,0,0,0,0},
                   {0,0,1,2,1},
                   {0,0,1,0,0},
                   {0,0,0,0,0},
                   {0,0,0,0,0}
               };
           type='L';
           break;
       case 'T':
           pieceBoard =
               [color="Red"][b]{[/b][/color]
                   {0,0,0,0,0},
                   {0,0,1,0,0},
                   {0,1,2,1,0},
                   {0,0,0,0,0},
                   {0,0,0,0,0}
               };
           type='T';
           break;
   }
}

Δημοσ.

δε μπορεις να δωσεις ετσι τιμες σε ενα array που ειναι ηδη δηλωμενο

 

δηλαδη, μπορεις να πεις το παρακατω:

>
int pieceBoard[5][5] =
             [color=Red] [b]{[/b][/color]
                   {0,0,0,0,0},
                   {0,0,0,0,0},
                   {0,0,2,1,0},
                   {0,0,1,1,0},
                   {0,0,0,0,0}
               };

 

αλλα οχι το παρακατω:

>
int pieceBoard[5][5];

pieceBoard  =
        [color=Red][b]{[/b][/color]
                   {0,0,0,0,0},
                   {0,0,0,0,0},
                   {0,0,2,1,0},
                   {0,0,1,1,0},
                   {0,0,0,0,0}
        }; 

 

Στη περιπτωση σου, σε καθε μπλοκ, θα πρεπει να βαζεις τα στοιχεια του pieceBoard ενα-ενα

 

hint: επειδη βλεπω πως το pieceBoardεχει αρκετα μηδενικα, μηδενισε το ολο εξ αρχης με την memset (υποθετοντας πως το pieceBoard ειναι ενα int array 5 επι 5)

>
memset(pieceBoard,0,sizeof(int)*25);

μετα θεσε τις λοιπες τιμες ξεχωριστα

>
pieceBoard[2][2]=2;
pieceBoard[2][3]=1;
....

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...