boost学习-3.conversion,多态类型之间的安全转型,与数据类型转换
来源:互联网 发布:365桌面提醒器源码 编辑:程序博客网 时间:2024/05/16 12:29
这个库比较简单,看例子就明白啦
1.多态类型之间的安全转型
polymorphic_cast 和 polymorphic_downcast
namespace boost {
template <class Derived, class Base>
inline Derived polymorphic_cast(Base* x);
// 抛出: std::bad_cast 如果 ( dynamic_cast<Derived>(x) == 0 )
// 返回: dynamic_cast<Derived>(x)
template <class Derived, class Base>
inline Derived polymorphic_downcast(Base* x);
// 效果: assert( dynamic_cast<Derived>(x) == x );
// 返回: static_cast<Derived>(x)
}
#include <boost/cast.hpp>
...
class Fruit { public: virtual ~Fruit(){}; ... };
class Banana : public Fruit { ... };
...
void f( Fruit * fruit ) {
// ... 我们确信 fruit 是一个 Banana
Banana * banana = boost::polymorphic_downcast<Banana*>(fruit);
...
2.数据类型转换
lexical_cast<>
#include <iostream>
#include <boost/lexical_cast.hpp>
using namespace boost;
using namespace std;
int main()
{
int i = lexical_cast<int>("123444");
cout<<"i="<<i<<endl;
string s = lexical_cast<string>(i);
cout<<"string s = "<<s<<endl;
double d1 = 1.345678900;
s = lexical_cast<string>(d1);
cout<<"string s = "<<s<<endl;
return 0;
}
- boost学习-3.conversion,多态类型之间的安全转型,与数据类型转换
- Date数据类型、基本数据类型与String类型之间的转换
- C#---数据类型转换与转型
- 使用boost库实现不同数据类型之间的自由转换
- Java学习之基本类型与字符串之间的转换
- BOOST库 之 智能指针的类型转换 (基类 与 子类之间智能指针的转换)(未完成)
- .NET 安全字符串与基本类型之间转换
- 基本数据类型与 String 之间的转换
- MYSQL 与 Oracle 之间的数据类型转换
- 不同数据类型与Json之间的转换
- 包装类与数据类型之间的转换
- MYSQL 与 Oracle 之间的数据类型转换
- 基本数据类型与字符串之间的转换
- MYSQL 与 Oracle 之间的数据类型转换
- js03.数据类型之间的转换与运算
- boost的类型转换
- java学习之旅10--基本数据类型自动转换_强制转型_类型提升问题
- 基本数据类型:8种基本类型、对应的包装类、引用数据类型及与String 之间的转换。
- 分享一位大神的Symbian全盘扫描
- powerdesigner下画E-R图
- 【STL】关联式容器细节
- VS2005快捷键大全
- 正则表达式中的特殊字符:
- boost学习-3.conversion,多态类型之间的安全转型,与数据类型转换
- 教程站,站长们的悲哀
- Modultils工具源码分析之insmod篇 (4)
- 利用OpenVPN实现在系统中的多种安全访问
- 选项卡滚动
- 开源免费项目管理软件Tedmine的安装配置
- curl_easy_perform接口只能下载资源的一部分?
- UNIX环境高级编程学习之第十章信号-信号的基本操作(绑定/忽略/默认/发送)
- 技术团队随想