Original Post
Hi I have a problem trying to access a static variable contained in the namespace 'NameSpace'. I have 2 classes: IntializeStatic and AccessStatic. InitializeStatic is called first and in the output it gives the correct result. After this, AccessStatic is called and in the output gives an incorrect result. The output produces: Init: 100 Access: 0 When I want it to produce: Init: 100 Access: 100 Can anyone help?? main.cpp InitializeStatic.h InitializeStatic.cpp AccessStatic.h AccessStatic.cpp
#include <iostream>
#include "InitializeStatic.h"
#include "AccessStatic.h"
using namespace std;
using NameSpace::InitializeStatic;
using NameSpace::AccessStatic;
int main()
{
InitializeStatic init;
AccessStatic access;
system( "PAUSE" );
return 0;
}
#ifndef INITIALIZESTATIC_H
#define INITIALIZESTATIC_H
#include "AccessStatic.h"
#include <iostream>
using namespace std;
using NameSpace::AccessStatic;
namespace NameSpace
{
class InitializeStatic
{
public:
InitializeStatic();
};
}
#endif
#include "InitializeStatic.h"
using NameSpace::InitializeStatic;
InitializeStatic::InitializeStatic()
{
NameSpace::StaticInt = 100;
cout << "Init: " << NameSpace::StaticInt << endl;
}
#ifndef ACCESSSTATIC_H
#define ACCESSSTATIC_H
#include <iostream>
using namespace std;
namespace NameSpace
{
static int StaticInt = 0;
class AccessStatic
{
public:
AccessStatic();
};
}
#endif
#include "AccessStatic.h"
using NameSpace::AccessStatic;
AccessStatic::AccessStatic()
{
cout << "Access: " << NameSpace::StaticInt << endl;
}