`
JasonRight
  • 浏览: 72934 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

boost库的常用用法

    博客分类:
  • c++
阅读更多
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)
{
//转换失败
}
分享到:
评论

相关推荐

    boost_1_79_0源码安装包

    对于Windows用户,最常用的方法是使用`b2.exe`(之前称为bjam),这是Boost.Build工具的一部分。在命令行中导航到Boost源代码根目录,然后运行: ``` bootstrap.bat b2 --toolset=msvc --build-type=complete ...

    boost 1.55版本官方pdf

    在1.55版本的Boost官方PDF文档中,你可以找到详尽的关于每个库的介绍、使用方法以及示例代码,对于学习和提升C++编程技能非常有帮助。 首先,Boost库包含了许多核心组件,例如: 1. **智能指针**:Boost提供了一套...

    C++标准库Boost程序库导论

    Boost库不仅能够帮助开发者提高代码质量和性能,还能简化开发过程,减少开发时间。 #### 字符串及文本处理 在Boost中,用于字符串及文本处理的库包括`boost::algorithm`和`boost::spirit`等。`boost::algorithm`...

    C++ 中boost::share_ptr智能指针的使用方法

    C++ 中boost::share_ptr智能指针的使用方法 最近项目中使用boost库的智能指针,感觉智能指针还是蛮强大的,在此贴出自己学习过程中编写的测试代码,以供其他想了解boost智能指针的朋友参考,有讲得不正确之处欢迎...

    Boost Graph Library: The User Guide and Reference Manual(解密pdf)

    再者,Boost库是一个广泛使用的开源库,其中包含了许多高效实现的C++模板库,用于各种常用的数据结构和算法。 《Boost图形库:用户指南和参考手册》的标题中提到“用户指南”和“参考手册”,意味着这本书有两个...

    Boost.C++.Application.Development.Cookbook

    - **基本 Boost 工具的使用**:涵盖常用的 Boost 库如 Boost.Filesystem、Boost.Date_Time 和 Boost.Thread 等的基本使用方法。 - **高级主题**:深入探讨诸如 Boost.Asio、Boost.Graph、Boost.Python 等高级库的...

    xcode iOS 使用 boost::asio 的 demo

    CocoaPods是最常用的方法,只需在Podfile中指定Boost.Asio依赖,然后执行`pod install`命令即可。 接下来,理解Boost.Asio的核心概念至关重要。`boost::asio::io_service`是所有I/O操作的中心调度器,它管理异步...

    matlab开发-BoostConverter

    在MATLAB的Simulink库中,我们可以找到各种电力电子模块,包括用于构建Boost转换器的组件。 在"boost_converter.slx"文件中,很可能是已经搭建好的Boost转换器模型。这个SLX文件是Simulink模型的保存格式,包含了...

    03-Beyond the C++ Standard Library-225页

    C++ Beyond the ...本书《Beyond the C++ Standard Library》是 C++ 开发者的一本非常有用的参考书籍,它提供了详细的 Boost 库使用方法和应用场景,帮助开发者更好地理解和使用 Boost 库,提高开发效率和质量。

    boost_Boost_boost状态空间_matlab状态空间_状态空间平均法;boost_源码.zip

    Boost库是C++编程语言中的一个开源库,它提供了大量的高效、高质量的工具包,用于提升C++的性能和功能。在"boost_Boost_boost状态空间_matlab状态空间_状态空间平均法;boost_源码.zip"这个压缩包中,我们可以看到与...

    boost_Boost_boost状态空间_matlab状态空间_状态空间平均法;boost_源码.rar

    Boost库是一个广泛使用的C++库,它提供了大量的工具和组件,用于提高C++程序的效率和灵活性。在Boost库中,状态空间模块(Boost.Statechart)是一个用于构建事件驱动和实时系统的轻量级库。它允许开发者以一种声明性...

    Boost.Asio

    该库是Boost库的一部分,广泛应用于需要系统编程的场景,特别是涉及到操作系统功能,如网络通信等领域。Boost.Asio的核心目标是可移植性、可扩展性和效率。 Boost.Asio的可移植性意味着它支持广泛的常用操作系统,...

    Boost.Asio C++ Network Programming

    常用方法有: - **线程池**:使用 `asio::thread_pool` 创建一组工作线程。 - **信号量**:控制资源访问以避免竞态条件。 - **互斥锁**:保护共享数据不被多个线程同时访问。 ### 7. 错误处理与调试技巧 错误处理是...

    boost编译工具-bjam用法介绍

    BJam作为一种专为Boost库设计的强大编译工具,不仅简化了编译过程,还提升了开发效率。本文旨在详细介绍BJam的基本用法、特性及其如何帮助开发者更高效地构建项目。 #### 特性 BJam是一种make工具的替代方案,它...

    AD常用的库文件.rar

    在IT行业中,库文件是程序员们经常使用的工具,它们提供了预先编写好的函数和模块,以...在实际开发中,开发者应深入理解库的功能和使用方法,灵活运用到项目中,同时关注库的更新和维护,以保持项目的先进性和安全性。

    lanhen.zip_Boost

    标题中的"lanhen.zip_Boost"暗示了这是一个与Boost库相关的压缩文件,Boost是一个开源的C++库集合,它提供了各种工具和库,用于提升C++的效率和灵活性。在这个特定的上下文中,"Boost"可能指的是电力电子中的Boost...

Global site tag (gtag.js) - Google Analytics