成员函数是否可以创建同一类的对象



成员函数("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可能想对其参数做些什么,而不仅仅是添加一个任意常量。)

是的,您可以用的任何方法创建同一类的对象

最新更新