boost学习-3.conversion,多态类型之间的安全转型,与数据类型转换
2010-02-25 13:15
567 查看
这个库比较简单,看例子就明白啦
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;
}
相关文章推荐
- PHP学习笔记——数据类型之间转换和检测;
- php学习之数据类型之间的转换介绍
- C#语言学习--基础部分(十二) --堆,栈,装箱,拆箱,安全数据类型转换:as, is
- PHP学习(四)--数据类型之间相互转换
- java学习之旅10--基本数据类型自动转换_强制转型_类型提升问题
- php学习之数据类型之间的转换代码
- 黑马程序员---类型转换异常,多态中的转型,抽象类。第十天学习笔记
- OC基础:OC 基本数据类型与对象之间的转换方法 分类: ios学习 OC 2015-06-18 20:01 11人阅读 评论(0) 收藏
- 【JAVA学习】java基本数据类型与字符串之间的转换(基本数据类型、对象封装类、自动装箱、自动拆箱)
- 新手学习PHP之-变量数据类型之间的转换
- PHP学习——数据类型之间相互转换
- php学习之------[数据类型之间的转换]
- 数据类型之间转换
- JAVA基本数据类型与其他语言数据类型之间的转换方法
- VC++中几种数据类型(CString, char*, char, ******等)之间的相互转换
- 关于java基本数据类型之间的转换
- vc2008错误:不能将参数 1 从“const char [5]”转换为“LPCTSTR”。。。。各种数据类型之间的转换
- Java中数据类型及其之间的转换