Hi guys,
I'm trying to figure out why this piece of code, while simple, just refuses to compile in Visual C++ 2010. I have these three example files (two headers, and one main CPP code file). I'd like to use an enum defined in one of the header files (main.h) as a return type for a function in the other (foo.h).
main.h:
Code:
#ifndef __MAINHEAD
#define __MAINHEAD
#include "foo.h"
class main
{
public:
enum aNewEnum {red, white, blue};
};
#endif
foo.h:
Code:
#ifndef __FOOHEAD
#define __FOOHEAD
#include "main.h"
class foo
{
public:
main::aNewEnum FunkyFunction();
};
#endif
main.cpp:
Code:
#include <iostream>
#include <string>
#include "main.h"
int main()
{
std::cout << "hello world";
return 0;
}
When I try to build the project, I get error C2653: 'main' : is not a class or namespace name...
I don't think the problem is due to main.cpp, or any of the files for that matter. I feel this should work, but isn't because of something the compiler is missing. Can anyone shed some light on this?