构造函数和放大器; self(void)这在课堂上意味着什么

时间:2013-11-13 12:06:56

标签: c++ constructor

我在看C ++代码,我被困在构造函数中。

class sassy{    
    public:    
    sassy()    
    sassy& self(void) // what does this mean? what it does?    
};

请清除我的怀疑。

3 个答案:

答案 0 :(得分:1)

该构造声明了一个没有参数的方法,该方法返回对同一个类的实例的引用。它不是构造函数 - 它们必须具有与类本身相同的名称。

很难说出意图是什么,这取决于实际的实施。

例如,实现只能return *this,这就是返回对象本身的引用。

答案 1 :(得分:1)

  这是什么意思?

它不是构造函数;它是一个成员函数。该函数被称为self,它返回对类型为sassy的对象的引用,并且它不带参数 - (void)表示没有参数,就像()那样,并且有些人喜欢使用(void)来让他们的代码更难阅读。

  

它的作用是什么?

可能它的实现是return *this;,返回对它所调用的对象的引用。这完全没有意义:如果你能够调用该函数,那么你可以在不调用它的情况下获得该引用。

或许它会返回别的东西;在这种情况下,它的名称具有误导性。

在任何一种情况下,它都是一个奇怪的功能,没有理由存在。

答案 2 :(得分:0)

它只是一个成员函数,它返回对当前类的实例的引用;也许是同一个对象。它不是构造函数。不知道它是为了什么。