何时调用构造函数

翻译 2016年08月30日 17:18:24
在使用x、y坐标时,将两个矢童相加将非常简单,只要将两分量相加,得到最终的x分量;将两个y分量相加,得到最终的y分量即可。根据这种描述,可能使用下面的代码:
<span style="font-size:14px;">Vector Vector::operator+(const Vector & b)const
{
     vector sum;
     sum.x=x+b.x;
     sum.y=y+b.y;
     return sum; // incomplete version
}</span>


如果对象只存储x和y分量,则这很好。遗憾的是,上述代码无法设置极坐标值。可以通过添加另外一些代码来解决这种问题:
<span style="font-size:14px;">Vector Vector::operator+ (const Vector & b) const
{
     Vector sum;
     sum.x=x+b.x;
     sum.y=y+b.y;
     sum.set_ang(sum.x, sum.y);
     sum.set_mag(sum.x, sum.y);
     return sum;//  version duplicates needlessly
}</span>


使用构造函数来完成这种工作,将更简单、更可靠:
<span style="font-size:14px;">Vector Vector::operato+ (const Vector & b) const
{
     returnVector(X+b.x,y+b.y);// return the constructed Vector
}</span>

     上述代码将新的x分量和y分量传递给Vector构造函数,而后者将使用这些值来创建无名的新对象,并返回该对象的副本。这确保了新的Vector对象是根据构造函数制定的标准规则创建的。
     提示:如果方法通过计算得到一个新的类对象,则应考虑是否可以使用类构造函數来完成这种工作。这样做不仅可以避免麻烦,而且可以确保新的对象是按照正确的方式创建的。

构造方法何时被调用

新建一个对象是被调用。也就是new的时候; 如: public class A { int i; String c; public A(){ }                  //无参...
  • woshixuye
  • woshixuye
  • 2012年01月25日 09:43
  • 2419

何时调用构造函数和析构函数

何时调用构造函数和析构函数 构造函数的作用是保证每个对象的数据成员都有何时的初始值。 析构函数的作用是回收内存和资源,通常用于释放在构造函数或对象生命期内获取的资源。 一般我们都知道构造和析构的...
  • feitianxuxue
  • feitianxuxue
  • 2012年03月05日 23:38
  • 10980

C++什么时候调用拷贝构造函数和什么时候调用构造函数

拷贝构造函数 都是在什么情况下调用??? /* ** 什么时候调用拷贝构造函数 ** */ #include using namespace std; //日...
  • love9099
  • love9099
  • 2015年02月03日 12:21
  • 1391

C++对象构造函数与析构函数的调用时间问题

今天看书忽然对这个地方有点模糊,尤其是析构函数在调用默认的析构函数和用户自己覆写的析构函数的时候有点意识模糊呢。写段代码总结下 #include using namespace std; ...
  • timebomb
  • timebomb
  • 2011年08月24日 09:57
  • 16200

构造函数的作用和特点

1. 构造函数的作用         构造函数主要用来在创建对象时完成对对象属性的一些初始化等操作, 当创建 对象时, 对象会自动调用它的构造函数。一般来说, 构造函数有以下三个方面 的作用: ...
  • dezhihuang
  • dezhihuang
  • 2014年09月26日 19:52
  • 9967

C++什么时候调用拷贝构造函数和什么时候调用构造函数

拷贝构造函数 都是在什么情况下调用??? /* ** 什么时候调用拷贝构造函数 ** */ #include using namespace std; //日...
  • love9099
  • love9099
  • 2015年02月03日 12:21
  • 1391

何时子类必须显示调用父类带参构造函数

子类显示调用父类带参构造函数
  • yanghongche
  • yanghongche
  • 2017年01月19日 17:51
  • 1678

静态对象是否调用构造函数?

#include using namespace std; class A { public: A() { cout
  • fynjy
  • fynjy
  • 2015年05月31日 20:26
  • 1697

Java继承时构造函数的调用

  • 2007年09月25日 02:49
  • 4KB
  • 下载

c#构造函数的调用过程

  • 2011年07月03日 21:19
  • 688B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:何时调用构造函数
举报原因:
原因补充:

(最多只允许输入30个字)