Приветствую!
Требуется делать несколько действий над объектом класса по порядку, например:
ClassA * a = new ClassA();
a->method1()->method3()->method2()->methodN()
т.е. примерно как в JQuery
Кстати, как такие цепочки вызовов правильно называются (ибо немогу нагуглить, может вообще вопрос не имеет смысла)?
Класс выглядит примерно так:
class ClassA
{
public:
ClassA(int _a, int _b): a(_a), b(_b) { }
ClassA * method1(const ClassA & c) { a+= c.a; .... return this; }
ClassA * method2(const ClassA & c) { b+= c.b; .... return this; }
ClassA * method3(const ClassA & c) { a*= c.a; .... return this; }
.......
private:
int a;
}
Очень интересует вопрос:
что будет быстрее и лучше, возвращать указатель на this, как делается в примере выше или же каждый раз создавать новый экземпляр и возвращать его (
ClassA method1(const ClassA & c) {.... return ClassA(a+c.a, b); }
), или же вообще по-другому ?
P.S. класс небольшой - до 20 методов, да штук 6 целочисленных переменный. Класс работает только со своими переменными, никуда больше ему лезть не надо. Может наследовать от другого такого же класса.