class Shape
class Triangle : public Shape

1.shared_ptr
定义类:
typedef boost::shared_ptr<class Shape> ShapeSharedPtr;


实例化:
ShapeSharedPtr shapeSP = ShapeSharedPtr(new Shape());


定义数组:
typedef boost::shared_ptr<std::vector<ShapeSharedPtr>> ShapeListSharedPtr;

辅助定义:
typedef std::vector<boost::shared_ptr<class Shape>> ShapeList;


实例化 :
ShapeListSharedPtr shapeListSP = ShapeListSharedPtr(new ShapeList);


得到普通指针
Shape* pShape = shapeSP.get();


普通指针封装
Shape* shapePointer = new Shape();
ShapeListSharedPtr shapePointerSP = ShapeListSharedPtr(shapePointer);


主动释放:
shapeSP.reset();


2.dynamic_pointer_cast
typedef boost::shared_ptr<class Triangle> TriangleSharedPtr;

ShapeSharedPtr triangleShapeSP = ShapeSharedPtr(new Triangle());

TriangleSharedPtr triangleSP = boost::dynamic_pointer_cast<Traingle>(
triangleShapeSP);

if(trangleSP.get())
{
//为子类对象
}


3.lexical_cast
基本类型转换
String strNum = "3.1415926";
try
{
    int nNum = boost::lexical_cast<int>(strNum);
}catch(boost::bad_lexical_cast e)
{
//转换失败
}
评论
发表评论

您还没有登录,请登录后发表评论

JasonRight
搜索本博客
博客分类
最近加入圈子
最新评论