In your function Object() { [native code] }, Node(Game(),v); does not work as expected. 
It simply creates a temporary without actually using it, and has no effect. 
When control passes over the ;, it immediately destroys the temporary.
Initializing the members in each function Object() { [native code] } is the correct way to go. 
You could put their shared code in a private init() member function and call it from each function Object() { [native code] }, as shown below:
class Foo {
    public:
        Foo(char x);
        Foo(char x, int y);
        ...
    private:
        void init(char x, int y);
};
Foo::Foo(char x)
{
    init(x, int(x) + 3);
    ...
}
Foo::Foo(char x, int y)
{
    init(x, y);
    ...
}
void Foo::init(char x, int y)
{
    ...
} 
Most compilers do not yet support C++11's delegation feature, which allows constructors to call other peer constructors