C ++:带有引用的智能指针和流利的设计模式

我一生都被高级语言所困扰,试图学习C ++。

我想将fluent design pattern与一个类一起使用,但是我担心自己在某处犯了一个错误并牺牲了性能。

说我有一个类Builder,它有一些成员属性和方法。所有的方法看起来都像这样:

Builder &doSomething(SomeTypeThatCouldBeAClassOrAPrimitive &thing)
{
    // do stuff,such as
    // modify a class member
    memberThing = "something";
    
    return *thing;
} 

并说我正在像这样使用它:

unique_ptr<Builder> builder(new Builder());

builder->doSomething(someVal)
        .doAnotherThing(someOtherVal)
        .doAFinalThing(someOtherOtherVal);

仅从提供的代码来看,我是在做错什么,还是可以更有效地完成某些事情?

如果需要提供更多信息,请告诉我。

iCMS 回答:C ++:带有引用的智能指针和流利的设计模式

这里没有什么错误,但是也不需要在堆上分配Builder对象。请考虑:

Builder builder;

builder.doSomething(someVal)
       .doAnotherThing(someOtherVal)
       .doAFinalThing(someOtherOtherVal);

您甚至可以使用临时Builder并完全删除变量:

Builder{}.doSomething(someVal)
         .doAnotherThing(someOtherVal)
         .doAFinalThing(someOtherOtherVal);
本文链接:https://www.f2er.com/1821162.html

大家都在问