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
Solved

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

Posted on 2000-03-30
5
1,954 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
  • 3
  • 2
5 Comments
 
LVL 1

Accepted Solution

by:
carldean earned 40 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

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

When writing generic code, using template meta-programming techniques, it is sometimes useful to know if a type is convertible to another type. A good example of when this might be is if you are writing diagnostic instrumentation for code to generat…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
The goal of the video will be to teach the user the difference and consequence of passing data by value vs passing data by reference in C++. An example of passing data by value as well as an example of passing data by reference will be be given. Bot…
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.

828 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