2017-03-20 51 views
-3

想要將不同的形狀對象存儲到文件中並使用cpp讀取相同的對象。請幫我怎麼做?如何從cpp中的不同基類對象的文件中讀取對象

static void saveShape(Shape* shape)//Shape may be circle, square, rectangle..... 
    { 
     ofstream os; 
     os.open("shapetemp.txt", ios::app); 
     os << shape; 
     os.close(); 
    } 
    static void readShape() 
    { 
     Shape tempShape ; 
     ifstream fin; 
     fin.open("shapetemp.txt",ios::in); 
     while (??) 
     { 
      //what is code to write here?? 
     } 


    } 
} 
+0

請格式化你的代碼正確。 – px06

+0

你的問題是什麼? – UnholySheep

+0

您將不得不從文件中讀取實際的類型,而不僅僅是基類。 –

回答

0

您可以使用protobuf的節省您的數據

message PBDataContainer { 
    Any data = 1; 
} 

的任何類型將保存真實數據的類型信息,您可以通過protobuf的讀取數據,並解析

+0

您可以發送此鏈接或任何鏈接的任何示例代碼嗎? –

+0

https://developers.google.com/protocol-buffers/docs/proto3#oneof – Tary

+0

或https://developers.google.com/protocol-buffers/docs/proto3#any – Tary