fork download
  1. class Encapsulator
  2. {
  3. protected:
  4. int i;
  5. public:
  6. Encapsulator(int v) : i(v) {}
  7. };
  8.  
  9. Encapsulator f(int x) { return x + 2; }
  10.  
  11. #include <iostream>
  12. int main( void )
  13. {
  14. Encapsulator e = f(7);
  15. // forbidden: std::cout << e.i << std::endl;
  16. struct Gimme : Encapsulator { static int read(Encapsulator& o) { return o.i; } };
  17. std::cout << Gimme::read(e) << std::endl;
  18. }
  19.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In static member function ‘static int main()::Gimme::read(Encapsulator&)’:
prog.cpp:4:9: error: ‘int Encapsulator::i’ is protected
prog.cpp:16:79: error: within this context
stdout
Standard output is empty