A::member
is not declared as static
, so do not specify its data type again when assigning its value:
B::StatObJ->member = ...;
Also, A::member
is declared as a pointer, so you have to allocate it before you can assign a value to it:
B::StatObJ->member = new int;
*(B::StatObJ->member) = 42;
Or:
B::StatObJ->member = new int(42);
Either way, both of those would be better served by giving A
a constructor to handle that allocation/assignment:
class A
{
public:
int* member;
A();
~A();
};
A::A()
: member(new int(42))
{
}
A::~A()
{
delete member;
}
A* B::StatObJ = new A();
Or better:
class A
{
public:
int* member;
A(int value);
~A();
};
A::A(int value)
: member(new int(value))
{
}
A::~A()
{
delete member;
}
A* B::StatObJ = new A(42);