Back to notes -- Keyboard shortcut: 'u'  previous -- Keyboard shortcut: 'p'        Slide program -- Keyboard shortcut: 't'    Problems solved - This program compiles.Lecture 4 - slide 10 : 24
Program 5
// Inspired from page 851 of "The C++ Programming Language", 3ed version.
// Accessing private_i and public_i as instance variables in Outer.

#include <iostream>
#include <string>

class Outer{
private:
  int private_i;

public:
  int public_i;

  class Inner{
  public:
    void fi(Outer *p);
  };

};

void Outer::Inner::fi(Outer *p){
  int local1 = p->private_i * 2;      // g++: Access is possible despite private_i is private in Outer. 
  int local2 = p->public_i * 3;       //  - same issue as in the earlier version of the program.

  std::cout << local1 << ", " << local2 << std::endl; 
}


int main(){
  Outer o;  
  Outer::Inner i;

  i.fi(&o);
}