GCC - "expected unqualified-id before ')' token"



Please bear with me, I'm just learning C++.

I'm trying to write my header file (for class) and I'm running into an odd error.

cards.h:21: error: expected unqualified-id before ')' token
cards.h:22: error: expected `)' before "str"
cards.h:23: error: expected `)' before "r"

What does "expected unqualified-id before ')' token" mean? And what am I doing wrong?

Edit: Sorry, I didn't post the entire code.

Card header file
// NOTE: Lanugage Docs here http://www.cplusplus.com/doc/tutorial/

#define Card
#define Hand
#define AppError

#include <string>

using namespace std;

// TODO: Docs here
class Card { // line 17
        enum Suit {Club, Diamond, Spade, Heart};
        enum Rank {Two, Three, Four, Five, Six, Seven, Eight, Nine,
                   Ten, Jack, Queen, King, Ace};
        Card(); // line 22
        Card(string str);
        Card(Rank r, Suit s);

Edit: I'm just trying to compile the header file by itself using "g++ file.h".

Edit: Closed question. My code is working now. Thanks everyone! Edit: Reopened question after reading Etiquette: Closing your posts

5/23/2017 12:15:45 PM

Accepted Answer

Your issue is your #define. You did #define Card, so now everywhere Card is seen as a token, it will be replaced.

Usually a #define Token with no additional token, as in #define Token Replace will use the value 1.

Remove the #define Card, it's making line 22 read: 1(); or ();, which is causing the complaint.

12/22/2015 12:45:34 PM

(edited for updated question)

Remove the #define statements, they're mangling the file. Were you trying to implement an include guard? That would be something like this:

#ifndef CARD_H
#define CARD_H

class Card ...


old answer:

It means that string is not defined in the current line. Try std::string.

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow