C++程序员如何用D编程

发表于:2014-7-01 09:50

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:uframer    来源:51Testing软件测试网采编

  每个有经验的 C++ 程序员都积累了一系列的习惯和技术,这几乎成了第二天性。有时候,当学习一门新语言时,这些习惯会因为太令人舒适而使人看不到新语言中等价的方法。所以下面收集了一些常用的 C++ 技术,以及如何在 D 中完成同样的任务。
  C++
  定义构造函数
  C++ 的方式
  构造函数同类同名:
  class Foo
  {
  Foo(int x);
  };
  D 的方式
  构造函数用 this 关键字定义:
  class Foo
  {
  this(int x) { }
  }
  基类初始化
  C++ 的方式
  基类构造函数通过参数初始化列表语法调用。
  class A { A() {... } };
  class B : A
  {
  B(int x)
  : A()// 调用基类构造函数
  {...
  }
  };
  D 的方式
  基类构造函数通过 super 关键字调用:
  class A { this() { ... } }
  class B : A
  {
  this(int x)
  {...
  super();// 调用基类构造函数
  ...
  }
  }
  D 的方式优于 C++ 的地方在于可以灵活的在派生类的构造函数中的任何地方调用基类构造函数。D 还可以让一个构造函数调用另一个构造函数:
  class A
  {int a;
  int b;
  this() { a = 7; b = foo(); }
  this(int x)
  {
  this();
  a = x;
  }
  }
  也可以在调用构造函数之前初始化成员,所以上面的例子等价于:
  class A
  {int a = 7;
  int b;
  this() { b = foo(); }
  this(int x)
  {
  this();
  a = x;
  }
  }
41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号