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

c++

Question

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
[Author]
*/
// 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
    public:
        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

1
7
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.

13
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 ...
...

#endif

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
Icon