用类型定义来减轻代码后期调整

ZDNet软件频道 时间:2002-08-08 作者:BUILDER.COM |  我要评论()
本文关键词:
代码定义可以帮助你尽量少的书写程序代码,尤其是当你运用STL(标准模板库)书写代码的时候,这种优点就更加突出了。
资深的程序员高度推崇代码定义的使用,因为它们可以使代码清楚明了并且有助于你去书写相互独立的平台代码。代码定义可以帮助你尽量少的书写程序代码,尤其是当你运用STL(标准模板库)书写代码的时候,这种优点就更加突出了。举例说明:


typedef std::vector< std::string> StringsArray;
StringsArray aEmployeeNames;
// [... code that fills them]
StringsArray::const_iterator
  itFirst = aEmployeeNames.begin(),
  itLast = aEmployeeNames.end();
while ( itFirst != itLast)
{
  std::cout << "Name: " << *itFirst << std::endl;
  ++ itFirst;
}


另一个用类型定义的好处就是它允许你去进行代码的协调(这意味着你的代码将是最优化过的),当你用STL的时候这一点尤为正确。

STL允许你在概念上上升到一个更高的水平。如果把一系列约束条件(即一类事物的约束条件)应用于一个类型上那么这个类型就是这类事物基本概念的一个模型。

例如,让我们来看一个封装的概念。Std::vector,std::list,和std::deque都是共享一个界面的封装。

template<class T, class A = allocator<T> >
class Cont {
public:
  // 这些是类型定义,也可以看成是界面的一部分  typedef [...] allocator_type;
  typedef [...] size_type;
  typedef [...] difference_type;
  typedef [...] reference;
  typedef [...] const_reference;
  typedef [...] value_type;
  typedef [...] iterator;
  typedef [...] const_iterator;
  typedef [...] reverse_iterator;
  typedef [...] const_reverse_iterator;
  iterator begin();
  const_iterator begin() const;
  iterator end();
  const_iterator end() const;
  reverse_iterator rbegin();
  const_reverse_iterator rbegin() const;
  reverse_iterator rend();
  const_reverse_iterator rend() const;
  size_type size() const;
  size_type max_size() const;
  bool empty() const;
  A get_allocator() const;
  iterator erase(iterator it);
  iterator erase(iterator first, iterator last);
  void clear();
  void swap(Cont x);
};


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134