Search notes:

C++: Inner classes

#include <iostream>

void p(const char* txt) {
  std::cout << txt << std::endl;
}

class Outer {
  public:
    Outer() {p("Outer::Outer");};

    class Inner {
      public:
        Inner() {p("Outer::Inner");};

        void mi(Outer o) {
          p("Outer::Inner::mi");

          //  Note: Outer::Inner is automatically a friend of
          //  Outer. So, it can call private methods of Outer:
          o.mo_private();
        };

    };

    void mo(Inner i) {
      p("Outer::mo");
      i.mi(*this);

    }

  private:
    void mo_private() {p("Outer::mo_private");}

};


int main() {

  Outer outer;
  Outer::Inner inner;

  outer.mo(inner);
  inner.mi(outer);

}
Github repository about-cpp, path: /classes-structs/inner/simple.cpp

Misc

Unlike in Java, inner class objects don't have an implicit reference to its outer class/object.

See also

Return inner classes.

Index

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php:78 Stack trace: #0 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(78): PDOStatement->execute(Array) #1 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(30): insert_webrequest_('/notes/developm...', 1758207166, '216.73.216.150', 'Mozilla/5.0 App...', NULL) #2 /home/httpd/vhosts/renenyffenegger.ch/httpsdocs/notes/development/languages/C-C-plus-plus/CPP/classes-structs/inner/index(87): insert_webrequest() #3 {main} thrown in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php on line 78