// File: constref.cpp // // Testing a constant reference return value #include using namespace std ; class AClass { public: AClass() : i(10), j(13) { cout << "AClass default constructor called\n" ; } void print() const { cout << "i=" << i << ", j=" << j << endl ; } void set_i(int n) { i = n ; } private: int i, j ; } ; class BClass { public: const AClass& GetData() const { return data ; } AClass& NonConstGetData() { return data ; } private: AClass data ; } ; int main() { AClass x ; x.print() ; BClass p ; x = p.GetData() ; p.GetData().print() ; // p.GetData().set_i(14) ; p.NonConstGetData().set_i(14) ; p.NonConstGetData().print() ; }