嗨我需要一個庫來自動生成C++的消息類從一些temaplate(例如XML)。類似於谷歌緩衝區的東西。但谷歌緩衝區不支持繼承和「免費」字段。我不需要使用序列化,它只是從模板部分自動生成,這是必須的。有任何想法嗎?C++消息類生成
Q
C++消息類生成
0
A
回答
1
如果您的「源代碼」是XML,XSLT看起來像是一個明顯的選擇。
0
看起來您至少有兩個問題:從XML讀取並在Fly上創建實例。正如其他人所說,使用一個庫來解析XML。在網上搜索"Factory design pattern c++"
。
如果存在公共基類,工廠將返回後代對象的實例(在動態內存中分配)。否則,工廠將成爲返回不同對象的函數的集合。
工廠實現的一種形式是接收文本字符串(要創建的類的名稱)並返回實例指針的方法,如果方法無法創建類,則返回NULL。類似這樣的:
class Animal;
class Cat: public Animal;
class Dog: public Animal;
class Elephant: public Animal;
Animal * Create_Cat(const std::string& animal_name);
Animal * Create_Dog(const std::string& animal_name);
Animal * Create_Elephant(const std::string& animal_name);
Animal * Animal_Factory(const std::string& animal_name)
{
Animal * p_animal = NULL;
do
{
p_animal = Create_Cat(animal_name);
if (p_animal)
{
break;
}
p_animal = Create_Dog(animal_name);
if (p_animal)
{
break;
}
p_animal = Create_Elephant(animal_name);
if (p_animal)
{
break;
}
} while (false);
return p_animal;
}
相關問題
- 1. XSD和自動類/消息生成
- 2. 如何生成HL7消息?
- 3. SOAP消息生成器
- 4. mathematica中的消息生成
- 5. 生成C#類
- 6. 生成C#類
- 7. C++ HTML生成類
- 8. 使用VBA爲特定的Excel錯誤消息生成消息?
- 9. 只生成一次錯誤消息
- 10. 是否有消息生成器
- 11. WebORB和「代碼生成失敗」消息
- 12. mysql_error不生成錯誤消息
- 13. 生成xml消息通過tcp發送
- 14. 爲複雜對象生成JSON消息
- 15. xcode生成內部錯誤消息
- 16. 爲HRESULT代碼生成診斷消息?
- 17. Yii 1.1消息文件生成Unicode
- 18. irp處理和windows消息生成
- 19. setTimer()僅生成WM_TIMER消息一次
- 20. 捕獲MFC應用程序以純C++生成的windows消息
- 21. 用於使用WSDL生成SOAP消息的C++庫
- 22. 使用C#和Rotativa生成PDF後,移除狀態消息
- 23. 使用來自C#代碼的屬性生成SOAP消息
- 24. 無法使用IActivityLogger和C#的Bot生成器記錄消息
- 25. 崩潰消息:無法生成臨時類
- 26. Twilio不生成從生成的TwiML回覆SMS消息
- 27. 由FileOpenDialog生成的通知消息生成32位構建不生成64位
- 28. 從JSON Schema生成C#類
- 29. C# - 動態生成的類?
- 30. Eclipse C++類生成格式
XSLT可能是最通用的方法,但具有非常複雜的語法。谷歌緩衝區定義的簡單性非常吸引人。 – Boris 2011-04-21 08:10:50