Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

error C2011: 'CDeta' : 'class' type redefinition

Posted on 2000-03-30
5
Medium Priority
?
1,986 Views
Last Modified: 2007-10-18
I am getting following error while
Recompiling my project
ERROR:

f:\sagar\ch_ng_energy~\deta.h(6) : error C2011: 'CDeta' : 'class' type redefinition


I ckecked I haven't redefined its type
But still compiler is giving me such an error. can anybody will please tell me possible couses for this error AND how
 I can Remove this.

0
Comment
Question by:sag_kas
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 
LVL 1

Accepted Solution

by:
carldean earned 160 total points
ID: 2668579
This is often caused by multiple inclusion of the same header file.  Your compilation unit (cpp file) presumably includes the header that defines CDeta.  I expect that one of the other headers you are including also includes the file for CDeta.

This is a common problem for people who are fresh at C++.  What you need to do is include guards in every header file that prevent multiple inclusion.

I always put the following in

#ifndef __filename_goes_here_H
#define __filename_goes_here_H

// Contents of header file followed by

#endif

So if your CDeta class was defined in a file deta.h then you should use...

#ifndef __DETA_H
#define __DETA_H

class CDeta
{
};

#endif

The #ifndef .. #define should be the first thing in your file.  The #endif should be the last.

You also need to make sure that the __DETA_H bit is different in every header file (that's why I always use an uppercase version of the filename).

That should do the trick.
0
 

Author Comment

by:sag_kas
ID: 2707508
this answer solved my problem , i was also having same problem  with "CMSChart" I made the same changes suggested by you now it solved thaT problem too ,


     but when i run my s/w which makes use of "Microsoft Chart Control ver. 6.0"
     (which creates "mschart.h" file )

I am getting error dialog box ,as
   
       Debug assertion failed

      File : winocc.cpp
      Line :345

for information on how your program can cause an assertion failure see VC++ documentation on assert .

      Abort   Retry   ignore

when i clicks  "Retry" it comes to the window " this program has performed an illigal operation & closed down"
    and it closes the whole project.

will you please tell me why this happens

the changes i made in mschart.h
are

#ifndef __CMSChart_H
#define __CMSChart_H
......
file statments ...
......
#endif
     
   
0
 
LVL 1

Expert Comment

by:carldean
ID: 2707569
That's a very different problem I'm afraid.  The two aren't related.

What you need to do is...

A. Give me the points for getting the first question right!!! (Am I mercenary or what!)

B. Raise a new question regarding your assertion failure.  I'm afraid I've never used MSChart and as this question is now so old I don't think anybody else will be reading it.

Actually, a general word about assertions that are raised in Microsoft's code...  When the debugger allows you to debug the code you should always have a look at it, you never know the Microsoft chaps may have put a comment near the ASSERTion that give you an indication of why it has happened.

Cheers, Carl.

P.S. Make sure that your MSChart control is properly created and initialised before trying to do anything with it.
0
 

Author Comment

by:sag_kas
ID: 2708741
I solved that problem by myself ,
   cheers ,
thanks for your answer .
   
0
 
LVL 1

Expert Comment

by:carldean
ID: 2711175
FOUR points!!!!  Blimey I've just tought you an invaluable C++ lesson and all you dish out is a measly FOUR points.

I don't suppose there's much chance of getting a birthday card of you either!!!
0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

  Included as part of the C++ Standard Template Library (STL) is a collection of generic containers. Each of these containers serves a different purpose and has different pros and cons. It is often difficult to decide which container to use and …
Introduction This article is a continuation of the C/C++ Visual Studio Express debugger series. Part 1 provided a quick start guide in using the debugger. Part 2 focused on additional topics in breakpoints. As your assignments become a little more …
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.
Suggested Courses

610 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question