@@ -20,8 +20,8 @@ class StampPoint3D: public StampBaseStr, public StampBaseV<Point3D>
20
20
public:
21
21
virtual int minSize ()override ;
22
22
virtual int maxSize ()override ;
23
- virtual std::stringExtractStr (Blob & blob)override ;
24
- virtual Point3DExtractValue (Blob & blob)override ;
23
+ virtual std::stringExtractStr (std::shared_ptr< Blob> blob)override ;
24
+ virtual Point3DExtractValue (std::shared_ptr< Blob> blob)override ;
25
25
};
26
26
27
27
int StampPoint3D::minSize ()
@@ -31,10 +31,10 @@ int StampPoint3D::minSize()
31
31
32
32
int StampPoint3D::maxSize ()
33
33
{
34
- return stampX.maxSize () + stampY.maxSize () + stampZ.maxSize ();
34
+ return stampX.maxSize () + stampY.maxSize () + stampZ.maxSize ();
35
35
}
36
36
37
- std::stringStampPoint3D::ExtractStr (Blob & blob)
37
+ std::stringStampPoint3D::ExtractStr (std::shared_ptr< Blob> blob)
38
38
{
39
39
std::string X,Y,Z;
40
40
X = stampX.ExtractStr (blob);
@@ -43,7 +43,7 @@ std::string StampPoint3D::ExtractStr(Blob &blob)
43
43
return " (" + X +" ," + Y +" ," + Z +" )" ;
44
44
}
45
45
46
- Point3DStampPoint3D::ExtractValue (Blob & blob)
46
+ Point3DStampPoint3D::ExtractValue (std::shared_ptr< Blob> blob)
47
47
{
48
48
Point3D res;
49
49
res.X = stampX.ExtractValue (blob);
@@ -55,17 +55,13 @@ Point3D StampPoint3D::ExtractValue(Blob &blob)
55
55
56
56
class StampPolyLine3D :public GalleyVectorStr ,public StampBaseStr
57
57
{
58
- protected:
59
- StampPoint3D * item_stamp_p;
60
58
public:
61
- StampPolyLine3D (): GalleyVectorStr(*(item_stamp_p =new StampPoint3D())) {};
62
- ~StampPolyLine3D () {delete item_stamp_p;};
63
-
64
- virtual std::stringExtractStr (Blob &blob)override ;
59
+ StampPolyLine3D (): GalleyVectorStr(std::make_shared<StampPoint3D>()) {};
60
+ virtual std::stringExtractStr (std::shared_ptr<Blob> blob)override ;
65
61
};
66
62
67
63
68
- std::stringStampPolyLine3D::ExtractStr (Blob & blob)
64
+ std::stringStampPolyLine3D::ExtractStr (std::shared_ptr< Blob> blob)
69
65
{
70
66
std::vector<std::string> data =ExtractStrVector (blob);
71
67
std::string res =" " ;
@@ -85,7 +81,7 @@ std::string StampPolyLine3D::ExtractStr(Blob &blob)
85
81
int main ()
86
82
{
87
83
char data[] =" abcdef" " abcdef" " ABCDEF" " 012345" ;
88
- Blob blob (data,strlen (data));
84
+ auto blob = std::make_shared<Blob> (data,strlen (data));
89
85
StampPolyLine3D stamp;
90
86
91
87
std::string s = stamp.ExtractStr (blob);