CVPR|OpenCV|影象檢索|視訊檢索
阿新 • • 發佈:2019-01-22
- 例3———Non Intrusion Version
- 現有一個Plant類,宣告和定義如下:
- Plant.h
class Plant { public: Plant() ; Plant(int _age, std::string _name) ; ~Plant() ; void addScore(const float _score) ; public: void setScore(const std::vector<float> _scoreVct) ; std::vector<float> getScore() const ; int m_age ; std::string m_name ; private: std::vector<float> m_score ; };
- Plant.cpp
Plant::Plant() { m_age = 0 ; m_name = "name" ; } Plant::~Plant() { if (m_score.size() > 0) { m_score.clear() ; } } Plant::Plant(int _age, std::string _name):m_age(_age), m_name(_name) { } void Plant::addScore(const float _score) { m_score.push_back(_score) ; } void Plant::setScore(const std::vector<float> _scoreVct) { m_score = _scoreVct ; } std::vector<float> Plant::getScore() const { return m_score ; }
- 序列化後的Plant類:
- Plant.h
class Plant { public: Plant() ; Plant(int _age, std::string _name) ; ~Plant() ; void addScore(const float _score) ; public: void setScore(const std::vector<float> _scoreVct) ; std::vector<float> getScore() const ; int m_age ; std::string m_name ; private: std::vector<float> m_score ; }; // 通過該巨集,將序列化分為:load 和 save // 這樣的好處在於:load 和 save 兩個函式可以編寫不同程式碼 // 而前面兩個例子中的serialize函式即充當load,又充當save
- 測試程式: