2

在 java 中,构建器的 setter 方法可以返回构建器本身,以便可以链接调用,如下所示:

public class builder{

private String name;
private int age;
private char glyph;

    public builder setName(String name){
    this.name = name;
        return this;
    }

    public builder setAge(int age){
        this.age = age;
        return this;
    }

public builder setGlyph(char glyph){
    this.glyph = glyph;
    return this;
}

public static void main(String[] args){
    builder b = new builder().setName("").setAge(10).setGlyph('%');
}
}

这在 C++ 中可能吗?

4

2 回答 2

7

是的,当然,您可以只返回对构建器的引用:

Builder & setSomething(const std::string & smth) 
{
    // do setting
    return *this;
}
于 2013-03-13T09:52:34.260 回答
2

是的,函数链接当然是可能的。例如的实现setName如下所示:

builder& setName(std::string name)
{
  this->name = name;
  return *this;
}

它返回对指向 by 的对象指针的引用this,这当然是当前对象。

于 2013-03-13T09:52:57.427 回答