首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

强大的C++——库扩充语言,该如何解决

2012-03-14 
强大的C++——库扩充语言通常,一种编程语言都会有一套基础的库如影随形。语言本身负责提供运算和处理,而库(基

强大的C++——库扩充语言
通常,一种编程语言都会有一套基础的库如影随形。语言本身负责提供运算和处理,而库(基本上)利用语言提供的机制实现一些特定的功能,如IO。但离开了基础库,语言也就顶多做个加减乘除,而且你连结果都看不到。
但是,在C++中,库不再是一个陪衬,不再仅仅提供与系统相关的操作。得益于C++强大灵活的语言机制,库甚至具备了扩展语言机制的能力。这种能力在各类语言中算是凤毛麟角的。在主流的语言中,几乎是独此一家的。(Ada也是足够强大的语言,但我不清楚是否也具备这种能力。若有高手知晓,请明示)。
在此,我举两个例子:一个是“模板表达式”,另一个是Type   Traits。
模板表达式,Template   Expression,是缓式评估(Lazy   Evaluate)技术的一个运用。(关于缓式评估,More   Effection   C++有详细论述)。先看下面的代码片段:
template <typename   T>
vector <T>   operator+(const   vector <T> &   op1,   const   vector <T> &   op2)   {
      …
}

template <typename   T>
vector <T>   operator*(const   vector <T> &   op1,   const   vector <T> &   op2)   {
      …
}

vector <double>   prise(1000),   quantity1(1000),   quantity2(1000),   result(1000);
…//初始化v1,v2,v3
result=prise*(quantity1+quantity2);
这里我们已经为vecotr <> 定义了+和*,着两个操作将两个vector的对应元素相加和相乘。这段代码似乎是在对两个仓库进行合并盘货。我们先不去管它干什么,来谈谈效率问题。


[解决办法]
makel
[解决办法]
make
[解决办法]
just have a look
[解决办法]
说实话,虽然只在钻研C++,也很喜欢C++界的挑战自我,可还是认为扩展语言更好。
更自然,更概念完整。
有高手给的评价是:leaky Abstraction是个非常严重的缺陷。这样的结果就是写出一堆看似“精巧”,其实丑陋的、冗余的、违反概念完整性的、难以理解的代码。
[解决办法]
mark
[解决办法]
mark

顶taodm的话
[解决办法]
mark
[解决办法]
mark 虽然看的不太懂,也要顶一个
[解决办法]
mark
[解决办法]

[解决办法]
look
[解决办法]
mark
学习了

[解决办法]
谢谢楼主!让我打开眼界!

热点排行