小编Abe*_*bee的帖子

具有 Fluent 界面的 C++ Builder 模式

我正在尝试使用流畅的界面实现构建器模式,以在 C++ 中构建对象。我希望构建器遵循 CRTP 模式。在 Java 中,我会执行类似于以下代码的操作。我如何在 C++ 中做同样的事情?

下面是一些具有基类和派生类的 java 代码。派生类的构建器继承了基类的构建器..

// Base class
public abstract class BaseClass {

    private final int base_class_variable;

    BaseClass(final Builder <?> builder) {
        this.base_class_variable = builder.base_class_variable;
    }

    public abstract static class Builder <B extends Builder> {

        int base_class_variable;

        public B setBaseClassVariable(final int variable) {
            this.base_class_variable = variable;
            return self();
        }

        protected abstract B self();
    }

}

// Derived class
public final class DerivedClass extends BaseClass {

    private final int derived_class_variable;

    private DerivedClass(final Builder builder) …
Run Code Online (Sandbox Code Playgroud)

c++ fluent builder c++builder c++11

4
推荐指数
1
解决办法
5273
查看次数

标签 统计

builder ×1

c++ ×1

c++11 ×1

c++builder ×1

fluent ×1