private arguments not saving things help c++ : main.cpp

    #include <iostream>
    #include <string>
    #include <vector>
    #include "Figuras.h"
    using namespace std;
    void error(){
            cout<<"algo ha ido mal vuelve a empezar"<<endl;
            exit(0);
        }
    
    int main(){
    	Figuras fig;
        vec V;
        string tip;
        cout << "Triangle = Tr / Cuadrat = Cu / Rectangle = Re / Segment = Se / Cercle = Ce" << endl;
        cin >> tip;
        
        if(tip=="Tr"){
            V = vector<pair<double,double>>(3);
        }
        else if(tip == "Cu" or tip == "Re"){
            V = vector<pair<double,double>>(4);
        }
        else if (tip == "Se" or tip == "Ce"){
            V = vector<pair<double,double>>(2);
        }
        else error();
        
        for (int i = 0; i < V.size(); i++) { //fill vector with coords
            cout << "Introdueix coordenada numero: " << i<<" format (double,double): " <<endl;
            cout << "x: ";
            cin >> V[i].first;
            cout << "y: ";
            cin >> V[i].second;
            
        }
        
        
        fig.crea_figura(tip,V);
        fig.mostrar_fig();
    
    
    	}

Figuras.cpp

    #include "Figuras.h"
    
    using namespace std;
    
    
        /*void Figuras::Figura(){
            tipo = NULL;
            Coord = NULL;
        }*/
        
        string Figuras::get_tipo (){
            return tipo;
        };
      
        vec Figuras::get_coords (){
            return Coord;
            
        };
      
        punto Figuras::get_inicio (){
            return inicio;
        };
      
        void Figuras::Set_tipo (string typ){
            tipo = typ;
        };
      
        void Figuras::Set_Coord (vec V){
            punto p;
            int x= V.size();
            Coord=vector<pair<double,double>>(x);
            for ( int i =0; i<x; i++){
                Coord[i].first = p.first;
                Coord[i].second = p.second;
                
            }
        };
      
        void Figuras::Set_inicio (punto ini){
            inicio = ini;
        }; 
        void Figuras::crea_figura (string tip, vec V){
            Set_tipo(tip);
            Set_Coord(V);
            
        };
      
        void Figuras::trasladar (punto P){
            double difx,dify;
            difx=P.first - inicio.first;
            dify=P.second - inicio.second;
            vec V;
            Figuras::get_coords();
            if (!Coord.empty()){
                for(int i=0; i<Coord.size(); i++){
                    Coord[i].first += difx;
                    Coord[i].second += dify;
                }
            }
            else cout<< "no hay coords"<<endl;
        };
      
        void Figuras::mostrar_fig (){
            vec V;
            V=get_coords();
            punto ini;
            ini=get_inicio();
            string tip;
            tip=get_tipo();
            cout<<"tipo: "<<tip<<endl;
            for (int i =0; i<V.size(); i++){
                cout<<"punto "<< i+1<<": "<<"("<<V[i].first<<","<<V[i].second<<")"<<endl;
            }
            cout<< "punto inicial: ("<<ini.first<<","<<ini.second<<")"<<endl;
            
        };

Figuras.h

    #ifndef FIGURAS_H
    #define FIGURAS_H
    
    #include <vector>
    #include <iostream>
    #include <string>
      
    using namespace std;
    
     
    typedef vector < pair < double, double >>vec;
    
    typedef pair < double, double >punto;
    
     
     
    class Figuras
    {
    
     
    private:
    string tipo;
      
    vec Coord;
      
    punto inicio={0.0,0.0};
    
     
    public:
    string get_tipo ();
      
    vec get_coords ();
      
    punto get_inicio ();
      
    void Set_tipo (string typ);
      
    void Set_Coord (vec V);
      
    void Set_inicio (punto ini);
    
    void crea_figura (string tip, vec vec);
      
    void trasladar (punto P);
      
    void mostrar_fig ();
    
    };
    
    
    #endif

hi guys let me explain the problem when i do, `crea_figura(tip,V);`
and then mostrar_fig() at main.cpp line 39,40

this happens:

Triangle = Tr / Cuadrat = Cu / Rectangle = Re / Segment = Se / Cercle = Ce
Tr
Introdueix coordenada numero: 0 format (double,double): 
x: 1.1
y: 1.1
Introdueix coordenada numero: 1 format (double,double): 
x: 2.2
y: 2.2
Introdueix coordenada numero: 2 format (double,double): 
x: 3.1
y: 1.1
tipo: Tr
punto 1: (0,0)
punto 2: (0,0)
punto 3: (0,0)
punto inicial: (0,0)

any help with that? if u hadn't noticed all points appear to be empty and i can not realize why is that for. Please help me and if you know any other way to initialize the class (another type of constructor), i will really appreciate that.




