C++ class and compiling

I am fairly OK with C++ and am having a teething problem with this compiler.

I have 2 classes defined, one copied from the UDP sniffing example and one I have constructed myself.

When compiling the CQueue.cpp and CQueue.h all is OK… As soon as I attempt to include CQueue.h anywhere else to create an instance I get parser errors ???

#ifdef __cplusplus
extern “C”

#include “sys_genericdatatypes.h”
#include “pti_Bridge.h”

class CQueue

virtual ~CQueue();
EReturnVal pti_ACKMessageSent( void );

// Attributes

// Operations
PData pti_GetNextQueueMessage( void );
EReturnVal pti_PutQueueNewMessage(PData pData, UWORD uwSize);
EReturnVal pti_PutBuffNewMessage(void);


//Storage type used to identify a message in the linked list
struct TLinkedList {
PData pData;
UWORD uwMessageSize;
ETCPPort ePortNum;
EMessageType eMessageType;
struct _TLinkedList * pNext;
struct _TLinkedList * pPrev;

//Storage type used to identify the current output message
struct TOutputMessage {
TLinkedList* pMessageLLEntry;
PData pOutBuffer;
UWORD uwNumOfBytes;

struct TQueueManagemet {
EInterfaceQueue eQueueType;
TLinkedList* QueueStart;
UWORD uwNumOfMessages;
ULONG ulHeapUsage;
TOutputMessage* pOputputMessage;

TQueueManagemet tQueueStore;
TOutputMessage  tOutputMessage;

CQueue(CQueue &so);               /* no implementation */
void operator=(const CQueue &so);  /* no implementation */


#ifdef __cplusplus

Does anyone see what is the problem, I am pulling my hair out.

OK simple enough to solve… there was no problem with the class definition, it was all down to the source file it was being included in…

I was including in a .c insetad of a .cpp DOHH!!!
How stupid do I feel.