Boost在C++ 自己的墙上打洞_C/C++语言_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

Boost在C++ 自己的墙上打洞

作者:黑客防线网安C/C++教程基地 来源:黑客防线网安C/C++教程基地 浏览次数:0

本篇关键词:自己 类型可以
黑客防线网安网讯:    Boost是极有才华的程序员们编写的C++库。Boost中的编程技巧、对C++及泛型的使用方式、以及其最终实现的效果都令人吃惊,甚至叹为观止。C++是强类型语言,有严格的类型检查。而Boost使用...
    Boost是极有才华的程序员们编写的C++库Boost中的编程技巧、对C++及泛型的使用方式、以及其最终实现的效果都令人吃惊甚至叹为观止C++是强类型语言有严格的类型检查。而Boost使用C++实现了弱类型的效果,着实在C++的墙上打了一个洞。
 
    C++的强类型特征曾被视为一种优点。至今它仍然也是优点。严格的类型检查可以帮助程序员检测出代码中的错误,可以提醒程序员注意到数据的取值范围,可以规范程序员对变量的使用,并在一定程度上增加程序的易读性。可以说C++编译器对数据类型的检查筑起了一堵类型高墙,对变量任何错误的赋值、错误的使用都会被挡住,任何可能会出错的地方都会被提醒。比如下面的代码,在编译的时候是通不过的。
 
int i;
i = "I am a string!";
 
    这堵墙被筑在了编译器上,而在这堵墙之后,在程序的运行期,则几乎完全没有类型检查。不仅如此,类型信息似乎已经被抛弃了。程序不能在运行期得到数据的类型信息,因此也无法在运行期依据类型选择相应的操作。
 
比如在C++中就实现不了像下面这样的语句:
void * makePlace( para)
{
    int len;
    len = para类型数据占用空间的大小;
    return 分配len个字节的内存;
}
 
在模板被引入之前,C++中只能用函数重载来增加可读性。使多个类型的内存分配功能都使用makePlace这个函数名,如:
 
void * makePlace (int para)
{
    return new char[sizeof(para)];
}
void * makePlace (float para)
{
    return new char[sizeof(para)];
}
 
如果有很多类型,那么就要写很多个makePlace。这些makePlace函数都是相似的。这只是一个简单的例子,事实上,有很多算法、结构都是可以应用到多种数据类型的,而为每种类型重写一堆代码,显然麻烦的很。
 
后来C++增加了泛型特征,可以在程序中使用模板。模板放在类型墙的前面,相当于一个变身器。把一个类型无关的算法放进来,生成一个符合类型法则的新算法,然后再放过到墙的另一边去。比如上面的makePlace代码,可以写成下面这样:
 
template<typename T>
void * makePlace(T para)
{
    return new char[sizeof(T)];
}
 
也许在C++中引入泛型模板只是为了这个朴素的目的,让程序员少做些重复的工作。也许泛型标准的设计者当初认为这一点算不上类型墙上的裂缝,不会影响到C++的强类型特征。呵呵,想想IE浏览器忙着封堵的那些漏洞吧。
 
这世上总会有一些智慧让你惊。Boost就是这样的东西。
 
Boost没有修改C++的任何规则。它是一个完全符合C++规范的代码库。
 
但是看看这段代码(摘自刘未鹏的文章:泛型指针类any之海纳百川):
 
int i;
long j;
X x; //假设X为用户定义的类
any anyVal=i;
... //use anyVal as a int value
anyVal=j;
... //use anyVal as a long value
anyVal=x;
... //use anyVal as a long value
  文章搜索:  名称 全文  文章 首页 IT资讯 开发语言 软件开发 WEB开发 考试认证 数据库 程序人生 编程学院 电子书籍 视频 博客 论文 专题 论坛 C语言 - C++ - C# - .NET - JAVA - VB - DELPHI - 汇编 - 数据结构
您现在的位置:首页--开发语言--C++--C++实例--浏览文章
Boost在C++自己的墙上打洞
点击:216   发布日期:2008-3-25 8:29:06   进入论坛
 
baidu
 
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-15171-1.html
网站维护教程更新时间:2012-04-04 22:51:05  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer