Это указатель. Вы не хотите адрес этого указателя, вы хотите это самому.
Обратите внимание, что при виртуальном наследовании (виртуальных базовых классах, множественном наследовании) этот указатель может быть не всегда одинаковым (он будет зависеть от того, где на графике наследования он указывает на конкретный момент времени) ,
Ну определенные преобразования существуют (dynamic_cast), так что никаких неразрешимых проблем там, просто сказать, что вы не должны слепо верить, что
MultiplyDerived* d = &someInstance;
Base* b = d;
bool test = ((void*) b) == ((void*) d);
test
не нужно всегда быть правдой (я думаю, что это даже зависит от компилятора, т.е. конкретная реализация, что происходит, когда).
Ха-ха, не может быть проще! Благодаря! Думаю, я думал, что это вернет экземпляр класса по копиям, но это явно не имеет смысла. – icz
Предполагаю, что вы уже подумали об этом, но вы делаете 'this-> function()' so 'this', представляющий указатель, имеет смысл –