Почему нельзя использовать другой тип

Я обнаружил, что если в классе метод возвращает ссылку, тогда с ним можно сделать такую вещь:

class A
{
public:
    enum ElementType
    {
        A2,
        A3,
    };
    A& Add(ElementType type)
    {
        std::cout << type << std::endl;
        return *this;
    }
};

int main()
{   
    A {}.Add(A::ElementType::A2).Add(A::ElementType::A3);
    return 0;
}

Почему я не мог так сделать, если будет тип void?


Ответы (1 шт):

Автор решения: Maxim

Если метод возвращает ссылку на объект, то к нему применяется вызов следующего метода, а если метод возвращает тип void, то это означает, что возвращаемого значения нет и невозможно вызвать следующий метод.

→ Ссылка