954,160 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

The error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ <class name>

Hi everyone, I'm new to C and have been given a C program to complete but found it includes many versions of the titled error for each class file.

Can anyone please explain why it occurs and how I could get rid of them?

Thanks,
Cleo

q2.c:5: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘spellChecker’


Example of a class:

class spellChecker {
protected:
  struct wordRecord* wordList;

public:
  spellChecker() {
    wordList=NULL;
  }
 
};
StephNicolaou
Posting Whiz in Training
204 posts since Nov 2007
Reputation Points: 77
Solved Threads: 18
 

its actually not a C program.Your program is in C++.Anyways
Which compiler you are using?
post a stand alone code so that we cant check the error!!

Dream2code
Junior Poster
144 posts since Jun 2009
Reputation Points: 22
Solved Threads: 12
 
its actually not a C program.Your program is in C++.Anyways Which compiler you are using? post a stand alone code so that we cant check the error!!

Okay, thanks for that, that was a stupid mistake, lol, I have not really got any experience with C++. I'm compiling it from the terminal window with g++ instead now.

If you don't mind, I have a new question with a new error.

I have a few of these:
error: ‘wordPointer’was not declared in this scope
error: ‘malloc’ was not declared in this scope

so I passed wordPointer as a parameter (char* wordPointer)
but then found this brought me further errors for each variable I've defined within a structure or the class.

How do I allow these variables to be used publicly?

bool caseInsensitivelyEqual(char* s1, char* s2) {
	int i=0;
	bool same=true;
	while (s1[i] && s2[i] && same) {
	    same=(tolower(s1[i])==tolower(s2[i]));
	    i++;
	}
	  if (s1[i] || s2[i]) same=false;
	  return same;
	}
 <code> Here are the variables I am using in my print method.
	struct wordRecord {
	  char* word;
	  struct wordRecord* next;
	};</code> 
	class spellChecker {
	protected:
	  struct wordRecord* wordList;

	public:
	  spellChecker() {
	    wordList=NULL;
	  } 
};


and the other 2 variables I am using for my print method are within
my case sensitive spellChecker class

struct wordRecord *root;
	struct wordRecord *wordPointer;	
	root = malloc(sizeof( struct wordRecord)); 
	root -> next = 0; 
	root -> word = dest; 
	wordPointer = root;


print method: I have passed them as parameters below:

void printDict(char* wordPointer, char* root, char* word, char* next) {
    //Step through dictionary, printing each word
    wordPointer -> root;
    while(wordPointer != NULL) {
    	printf("%s\n", wordPointer -> word);
    	wordPointer = wordPointer -> next;    	
    }
  }


And the further errors I received:

error: request for member ‘root’ in ‘* wordPointer’,which is of non-class type ‘char’
error: request for member ‘word’ in ‘* wordPointer’, which is of non-class type ‘char’
error: request for member ‘next’ in ‘* wordPointer’, which is of non-class type ‘char’

StephNicolaou
Posting Whiz in Training
204 posts since Nov 2007
Reputation Points: 77
Solved Threads: 18
 

Hi there,

I think you have mistaked the pointer you should receive a wordRecord* and not a char* in the void printDict(char* wordPointer, char* root, char* word, char* next) in order you can use the word and next members in this way wordPointer -> word.

Leo71
Newbie Poster
1 post since Jun 2009
Reputation Points: 10
Solved Threads: 1
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You