Запись в вектор объектов класса из файла

После считывания в векторе получаются одни и те же значения. Не понимаю в чем причина. Если выводить tempVar1 в цикле то в нем правильные значения, но в итоге в векторе одни и те же.

class Edge{  // }  void ReadFromFile(vector<Vertex*>& vertexs, vector<Edge*>& edges) {         char buff[20];         vector<string> buffer;         bool flag = 0;         fstream fin;         fin.open("test.tgf", ios::in);         while (!fin.eof()) {             fin.getline(buff, 20);             if (buff[0] == '#') {                 flag = 1;                 continue;             }             if (flag == 0) {                 buffer = Split(buff, " ");                 //Vertex tempVar(atoi(buffer[0].c_str()), buffer[1].c_str());                 //vertexs.push_back(&tempVar);             }             if (flag == 1) {                 buffer = Split(buff, " ");                 Edge tempVar1(atoi(buffer[0].c_str()), atoi(buffer[1].c_str()), atoi(buffer[2].c_str()));                 edges.push_back(&tempVar1);             }         }         fin.close(); 

В векторе получаются такие значения:

6 4 1 6 4 1 6 4 1 6 4 1 6 4 1 6 4 1 6 4 1 6 4 1 6 4 1 6 4 1 6 4 1 

Вместо:

1 2 1 1 5 1 2 5 1 5 4 1 2 3 1 3 4 1 4 6 1 2 1 1 5 1 1 5 2 1 4 5 1 3 2 1 4 3 1 6 4 1