我在看C ++代码,我被困在构造函数中。
class sassy{
public:
sassy()
sassy& self(void) // what does this mean? what it does?
};
请清除我的怀疑。
答案 0 :(得分:1)
该构造声明了一个没有参数的方法,该方法返回对同一个类的实例的引用。它不是构造函数 - 它们必须具有与类本身相同的名称。
很难说出意图是什么,这取决于实际的实施。
例如,实现只能return *this
,这就是返回对象本身的引用。
答案 1 :(得分:1)
这是什么意思?
它不是构造函数;它是一个成员函数。该函数被称为self
,它返回对类型为sassy
的对象的引用,并且它不带参数 - (void)
表示没有参数,就像()
那样,并且有些人喜欢使用(void)
来让他们的代码更难阅读。
它的作用是什么?
可能它的实现是return *this;
,返回对它所调用的对象的引用。这完全没有意义:如果你能够调用该函数,那么你可以在不调用它的情况下获得该引用。
或许它会返回别的东西;在这种情况下,它的名称具有误导性。
在任何一种情况下,它都是一个奇怪的功能,没有理由存在。
答案 2 :(得分:0)
它只是一个成员函数,它返回对当前类的实例的引用;也许是同一个对象。它不是构造函数。不知道它是为了什么。