I came across the following code and I couldn't find on google why the following statement is valid C++ :
Base&& b = Derived();
Please explain or give reference
Here is a sample code :
#include <iostream>
using namespace std;
class Base{
public:
virtual ~Base(){}
virtual void say_hi() { cout << "hi base"; }
};
class Derived : public Base{
public:
virtual ~Derived(){}
virtual void say_hi() { cout << "hi derived"; }
};
int main(int argc, const char * argv[]) {
Base&& b = Derived();
b.say_hi();
return 0;
}
prints :
hi derived