Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   C++ (http://www.velocityreviews.com/forums/f39-c.html)
-   -   use of undefined type???? (http://www.velocityreviews.com/forums/t512440-use-of-undefined-type.html)

Anonymous Infidel - Aborted Islam with a hanger 06-06-2007 01:59 PM

use of undefined type????
 
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


Stefan Naewe 06-06-2007 02:08 PM

Re: use of undefined type????
 
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

Victor Bazarov 06-06-2007 02:08 PM

Re: use of undefined type????
 
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



Anonymous Infidel - Aborted Islam with a hanger 06-06-2007 02:45 PM

Re: use of undefined type????
 
On Jun 6, 7:08 am, Stefan Naewe <nos...@please.net> 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.




All times are GMT. The time now is 03:22 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.