Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8059833
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 5, 20262026-06-05T09:47:39+00:00 2026-06-05T09:47:39+00:00

The following C++ code is generating this error: error C2061: syntax error : identifier

  • 0

The following C++ code is generating this error:

error C2061: syntax error : identifier 'IObject'

Here is my code:

file : IObject.h

#include "IIStreamable.h"
using namespace Serialization;
namespace Object
{
    class IObject : public IIStreamable
    {
        virtual void AcceptReader( IIReader* reader ); 
        virtual void AcceptWriter( IIWriter* writer );
    };
}

file: IIWriter

#include "IObject.h"
#using namespace Object;
namespace Serialization
{
    class ICORE_API IIWriter
 {
public:
    // primitive "built in" value types
    virtual void writeChar(const char) =0;
    virtual void writeUChar(unsigned char) =0;
    virtual void writeCharPtr(const char*) =0;
    virtual void writeUCharPtr(const unsigned char*) =0;
    virtual void writeLong(long) =0;
    virtual void writeULong(unsigned long) =0;
    virtual void writeShort(short) =0;
    virtual void writeUShort(unsigned short) =0;
    virtual void writeInt(int) =0;
    virtual void writeUInt(unsigned int) =0;
    virtual void writeFloat(float) =0;
    virtual void writeDouble(double) =0;
    virtual void writeBool(bool) =0;
    virtual void writeObject(IObject*) =0;
    };
 }

file: IIStreamable

#include "IIReader.h"
#include "IIWriter.h"
namespace Serialization
{

class ICORE_API IIStreamable
    {
    public:
    virtual void AcceptReader(IIReader*) = 0;
    virtual void AcceptWriter(IIWriter*) = 0;
    };
 }

after compiling this code in vc++ 2010 i got this error

error C2061: syntax error : identifier ‘IObject’

in the IIWriter.h file and

error C2061: syntax error : identifier ‘IIWriter’

in the IObject.h file and

error C2061: syntax error : identifier ‘IIWriter’

in the IIStreamale.h file.

i can not understand why this error occurs?

please help me

thanks

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-05T09:47:41+00:00Added an answer on June 5, 2026 at 9:47 am

    Making use of a using directive as suggested by piokuc will still leave you the problem of a circular include reference

    You would be best off changing the IObject.h to the following:

    namespace Serialization
    {
         class ICORE_API IIWriter;
         class ICORE_API IIReader;
    }
    namespace Object
    {
        class IObject : public IIStreamable
        {
            virtual void AcceptReader( Serialization::IIReader* reader ); 
            virtual void AcceptWriter( Serialization::IIWriter* writer );
        };
    }
    

    IE drop the #include and forward declare IIReader and IIWriter. In fact you could avoid more confusion by dropping the #include IObject.h as well and forward declaring that similarly to above….

    virtual void writeObject( Object::IObject* ) = 0;
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

The following code is generating an error on the variable con2 saying non-static variable
I am generating the scala AST using the following code: val setting = new
The following line in my VBA code is generating the compile error 'Compiler error
I have the following code that is generating an error when I try to
The following code is generating a stack overflow error for me int main(int argc,
I have following code working on a development environment (SQLite) but generating an error
I have used this web link as reference . The following code is generating
The following code is generating a page not found error with Kohana 2.3.4 class
The following code is generating warning C6284 when compiled with /analyze on MSVC 2008
I am generating a simple form with php. The following code has been reduced

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.