class Base{};
class Exp: public Base
{
int i=0;
public:
int Get() const { return i; }
void Set(const int &num) { i=num; }
};
std::vector<Base> MyStack;
Base &GetRef()
{ return *MyStack.begin(); }
int main(){
Exp a;
a.Set(4);
MyStack.push_back(a);
int res=((Exp&)GetRef()).Get(); // Не работает, мусор из стека
}