成员函数("添加")可以创建其类的对象(" 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);
答案 0 :(得分:7)
是:只要一个类是可复制的(如本)或可移动的,您就可以从任何函数(包括它自己的成员函数)返回一个实例。但是,这个
distance k;
将无效,因为没有默认构造函数。相反,使用可用的构造函数:
return distance(feet+10, inches+8);
(您可能还需要更正第二个构造函数参数的名称;实际上,您将inches
成员设置为其未初始化的值。add
可能想要执行某些操作使用其参数,不只是添加任意常量。)
答案 1 :(得分:2)
是的,您可以在其任何方法中创建同一类的对象