-2

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

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

请清除我的疑问。

4

3 回答 3

1

这是什么意思?

它不是构造函数;它是一个成员函数。该函数被调用self,它返回对类型对象的引用sassy,并且它不接受任何参数 -(void)意味着没有参数,就像这样()做一样,有些人喜欢使用它(void)来使他们的代码更难阅读。

它能做什么?

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

或者它可能返回其他东西;在这种情况下,它的名称具有误导性。

无论哪种情况,它都是一个没有理由存在的奇怪功能。

于 2013-11-13T12:28:53.587 回答
1

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

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

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

于 2013-11-13T12:11:36.040 回答
0

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

于 2013-11-13T12:12:54.983 回答