Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > use of undefined type????

Reply
Thread Tools

use of undefined type????

 
 
Anonymous Infidel - Aborted Islam with a hanger
Guest
Posts: n/a
 
      06-06-2007
I have two classes(class A, class main). class main uses a pointer to
class A and class A uses a global pointer to main. My problem is I
keep getting these errors:

a.h(12) : error C2027: use of undefined type 'main'
a.h(4) : see declaration of 'main'
a.h(12) : error C2227: left of '->SomeDriver' must point to class/
struct/union/generic type

How do I fix this?

Thx ahead of time.
********
#include "main.h"
#include "A.h"

main *g_main = NULL;
int _tmain(int argc, _TCHAR* argv[])
{
g_main = new main;
g_main->a = new A;
g_main->a->Print();
g_main->a->SomeFunction();

return 0;
}
*********
#ifndef MAIN_H
#define MAIN_H
class A;
class main
{
public:
void SomeDriver()
{
printf ("driver called\n");
}
void PrintA()
{
a->Print();
}
A *a;
};
extern main *g_main;
#endif
*******
#ifndef A_H
#define A_H
class main;
class A
{
public:
void SomeFunction()
{
g_main->SomeDriver();
}
void Print()
{
printf ("Characters: a\n");
}
};
#endif

 
Reply With Quote
 
 
 
 
Stefan Naewe
Guest
Posts: n/a
 
      06-06-2007
On 6/6/2007 3:59 PM, Anonymous Infidel - Aborted Islam with a hanger wrote:
> I have two classes(class A, class main). class main uses a pointer to
> class A and class A uses a global pointer to main. My problem is I
> keep getting these errors:
>
> a.h(12) : error C2027: use of undefined type 'main'
> a.h(4) : see declaration of 'main'
> a.h(12) : error C2227: left of '->SomeDriver' must point to class/
> struct/union/generic type
>
> How do I fix this?
>
> [code snipped] see one of his other posts.


What's wrong with you?
Do you read answers to your posts?

S.
--
Stefan Naewe stefan dot naewe at atlas-elektronik dot com
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please http://www.expita.com/nomime.html
 
Reply With Quote
 
 
 
 
Victor Bazarov
Guest
Posts: n/a
 
      06-06-2007
Anonymous Infidel - Aborted Islam with a hanger wrote:
> I have two classes(class A, class main). class main uses a pointer to
> class A and class A uses a global pointer to main. My problem is I
> keep getting these errors:
>
> a.h(12) : error C2027: use of undefined type 'main'
> a.h(4) : see declaration of 'main'
> a.h(12) : error C2227: left of '->SomeDriver' must point to class/
> struct/union/generic type
>
> How do I fix this?


First off, you should probably rename your class from 'main' to smth
else. 'main' is the name of the function in your program that starts
its execution.

>
> Thx ahead of time.
> ********
> #include "main.h"
> #include "A.h"
>
> main *g_main = NULL;
> int _tmain(int argc, _TCHAR* argv[])


There is no standard function _tmain.

> {
> g_main = new main;
> g_main->a = new A;
> g_main->a->Print();
> g_main->a->SomeFunction();
>
> return 0;
> }
> *********
> #ifndef MAIN_H
> #define MAIN_H
> class A;
> class main
> {
> public:
> void SomeDriver()
> {
> printf ("driver called\n");
> }
> void PrintA()
> {
> a->Print();


Class 'A' hasn't been defined here yet. Consider pulling this
function out of the class definition into the translation unit.

> }
> A *a;
> };
> extern main *g_main;
> #endif
> *******
> #ifndef A_H
> #define A_H
> class main;
> class A
> {
> public:
> void SomeFunction()
> {
> g_main->SomeDriver();


Although your 'A.h' is supposedly included after your 'main.h',
if it weren't, 'g_main' is undefined here. Consider pulling this
function out of the class definition into a translation unit.

> }
> void Print()
> {
> printf ("Characters: a\n");
> }
> };
> #endif


Consider separating declarations and implementations of class
member functions. It's always a good idea for beginners.

V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask


 
Reply With Quote
 
Anonymous Infidel - Aborted Islam with a hanger
Guest
Posts: n/a
 
      06-06-2007
On Jun 6, 7:08 am, Stefan Naewe <(E-Mail Removed)> wrote:
> On 6/6/2007 3:59 PM, Anonymous Infidel - Aborted Islam with a hanger wrote:
>
> > I have two classes(class A, class main). class main uses a pointer to
> > class A and class A uses a global pointer to main. My problem is I
> > keep getting these errors:

>
> > a.h(12) : error C2027: use of undefined type 'main'
> > a.h(4) : see declaration of 'main'
> > a.h(12) : error C2227: left of '->SomeDriver' must point to class/
> > struct/union/generic type

>
> > How do I fix this?

>
> > [code snipped] see one of his other posts.

>
> What's wrong with you?
> Do you read answers to your posts?

Yes.


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
typeof x == 'undefined' or x == undefined? -Lost Javascript 13 01-31-2007 12:04 AM
undefined vs. undefined (was: new Array() vs []) VK Javascript 45 09-12-2006 05:26 PM
invalid use of undefined type, .h file confusion vfunc@talktalk.net C++ 8 02-12-2006 09:08 AM
error C2027: use of undefined type ramkrishna.kulkarni@gmail.com C++ 2 07-15-2005 02:18 PM
undefined behavior or not undefined behavior? That is the question Mantorok Redgormor C Programming 70 02-17-2004 02:46 PM



Advertisments