Наследование. Каким образом вызывается operator=() через оператор разрешения контекста?
=========================================================================================

 Читал про наследование с динамическим выделением памяти одновременно: и в производном, и в базовом классах. И есть такая штука в примере с определением operator=() производного класса:  
`BaseClass::operator=(derived_reference);`  

Как так? Ведь operator=() - не статический метод, а значит его вызывать можно только через объект. Ниже написано, что это почти равнозначно следующему:  
`*this = derived_reference;`  

Только в этом случае будет рекурсивный вызов, т.к. будет преобразовано в:  
`DerivedClass::operator=(derived_reference);`  

Это такая особенность, созданная для наследования, или как? Ведь по правилам, на сколько я знаю, так делать никак нельзя. 

 Это не вызов статического метода, а явное указание того, какую реализацию использовать (не полиморфно, будет вызванная именн офункция для указанного класса). Рекомендую почитать про множественное наследование, там может станет чуть понятнее. Например, если класс С унаследован от А и B, и в них обоих есть переменная var, то нужно будет писать A::var и B::var, чтобы пояснить, какая из них исползьуется. 

> Ведь operator=() - не статический метод, а значит его вызывать можно только через объект.

  

Если делать это внутри другого не-статического метода, то можно, объектом будет *this.