Question: I can operate class+class (for example I can do date+date), but can anyone explain how can I do class+class+class please? C++ does not let me define an operator with 2 parameters.

Answer: 
By making them friends of the class, you would make sure they are binary operators, and define them separately, like so:

```
class someclass
{
     int a;
public:
     someclass();
     ...
     friend someclass operator+(const someclass & lhs, const someclass & rhs);
};

someclass operator+(const someclass &lhs, const someclass &rhs)
{
     someclass a = lhs;
     a.a = a.a + rhs.a;
     return a;
}

```

you will, of course need to define a copy constructor (someclass(const someclass & old);) and the other functions of the class, but this method has always worked for me, and it was how I was taught in college.
There are two ways you can approach this. The normal way with operators is, you just create a normal two operand operator, and then chain the calls together. For example `a + b + c + d` => `operator+(operator+(operator+(a + b), c), d)`.

Alternately, create your own named function or member that provides a multi-parameter version, using the name to accurately describe what it does.