Please have a look at the following code
GameObject.h
#pragma once
class GameObject
{
public: 
    GameObject(int);
    ~GameObject(void);
    int id;
private:
    GameObject(void);
};
GameObject.cpp
#include "GameObject.h"
#include <iostream>
using namespace std;
static int counter = 0;
GameObject::GameObject(void)
{
}
GameObject::GameObject(int i)
{
    counter++;
    id = i;
}
GameObject::~GameObject(void)
{
}
Main.cpp
#include <iostream>
#include "GameObject.h"
using namespace std;
int main()
{
    //GameObject obj1;
    //cout << obj1.id << endl;
    GameObject obj2(45);
    cout << obj2.id << endl;;
//  cout << obj2.counter << endl;
    GameObject obj3(45);
    GameObject obj4(45);
    GameObject obj5(45);
    //Cannot get Static value here
    //cout << "Number of Objects: " << GameObject
    //
    system("pause");
    return 0;
}
Here, I am trying to record how many instances have been created. I know it can be done by a static data member, but I can't access it withing the Main method! Please help!
PS:
I am seeeking for a direct access, without a getter method
 
     
    