use of undefined type????

  • Thread starter Anonymous Infidel - Aborted Islam with a hanger
  • Start date
A

Anonymous Infidel - Aborted Islam with a hanger

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
 
S

Stefan Naewe

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.
 
V

Victor Bazarov

Anonymous said:
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
 
A

Anonymous Infidel - Aborted Islam with a hanger

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,045
Latest member
DRCM

Latest Threads

Top