成员函数("add")是否可以创建其类("distance")的对象("k"),返回,如下面给出的代码示例所示?
class distance
{
int feet;
float inches;
public:
distance(int feet, float inches)
{
this->feet=feet;
this->inches=inches;
}
distance add(distance d)
{
distance k;
k.feet=feet+10;
k.inches=inches+8;
return k;
}
};
distance e(0,0.0);
是:只要一个类是可复制的(照原样)或可移动的,您就可以从任何函数(包括它自己的成员函数)返回实例。然而,这个
distance k;
不会工作,因为没有默认的构造函数。相反,使用可用的构造函数:
return distance(feet+10, inches+8);
(您可能还想更正第二个构造函数参数的名称;实际上,您正在将inches
成员设置为其自己的未初始化值。add
可能想对其参数做些什么,而不仅仅是添加一个任意常量。)
是的,您可以用的任何方法创建同一类的对象