#include using namespace std; class Foo { public: int i; Foo() { i = -1; } Foo( const Foo& f) { i = f.i; } Foo( double x) { i = (int)x; } }; int main() { const Foo& f = Foo(); // this won't compile //const Foo& g = Foo; cout << f.i << endl; return -1; }