何时调用构造函数

翻译 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对象是根据构造函数制定的标准规则创建的。
     提示:如果方法通过计算得到一个新的类对象,则应考虑是否可以使用类构造函數来完成这种工作。这样做不仅可以避免麻烦,而且可以确保新的对象是按照正确的方式创建的。

相关文章推荐

C++里类的构造函数与析构函数的调用时间

在创建类类型的新的对象的时候,都要执行类中的构造函数。而当构造函数中分配了资源之后,需要一个相应的操作将这些资源释放出去,这就需要析构函数。 一般来说,在有多个类的程序中,先实现的类会先调用构造函数...

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

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

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

拷贝构造函数 都是在什么情况下调用??? /* ** 什么时候调用拷贝构造函数 ** */ #include using namespace std; //日...

Java继承时构造函数的调用

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

c#构造函数的调用过程

  • 2011年07月03日 21:19
  • 688B
  • 下载

理解C++存在继承和组合的对象构造函数调用顺序

前言: Hello,全世界早上好啊,哈哈,9月你好,2015年9月的第一天,也是自己本科生涯的最后一年了,接下来就是校招走上自己的职场,昨天是大四的第一节课,上的是软件工程,挺喜欢的一门课,...

Java继承时构造函数的调用

  • 2013年08月06日 15:30
  • 22KB
  • 下载

C++中构造函数的调用次数

c++定义类的对象MyClass a,b[2],*c,**d,*e[2],*f=new char A,*g=new char B[2]分别调用几次构造函数?为什么?...

C++中了类继承和调用父类的构造函数方法

构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:何时调用构造函数
举报原因:
原因补充:

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