HenriAugusto

C++ nested interfaces test

Feb 29th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. // Example program
  2. #include <iostream>
  3. #include <string>
  4.  
  5. class iOuter {
  6. public:
  7.     virtual void print() = 0;
  8.  
  9.     class iInner {
  10.     public:
  11.         virtual void print() = 0;
  12.     };
  13.  
  14. };
  15.  
  16. class Outer : public iOuter {
  17.  
  18. public:
  19.     void print(){
  20.         std::cout << "printing on Outer\n";
  21.     }
  22.    
  23.     static const int test = 666;
  24.  
  25.     class Inner : public iInner{
  26.     public:
  27.         void print(){
  28.             //Outer::print();
  29.             std::cout << test << std::endl;
  30.             std::cout << "printing on Inner\n";
  31.         }
  32.     };
  33.  
  34. };
  35.  
  36. class Outer2 : public iOuter {
  37.  
  38. public:
  39.     void print(){
  40.         std::cout << "printing on Outer2\n";
  41.         inner.print();
  42.     }
  43.    
  44.     static const int test = 666;
  45.  
  46.     class Inner2 : public iInner{
  47.     public:
  48.         void print(){
  49.             //Outer::print();
  50.             std::cout << test << std::endl;
  51.             std::cout << "printing on Inner2\n";
  52.         }
  53.     };
  54.  
  55. private:
  56.     Inner2 inner;
  57.  
  58. };
  59.  
  60.  
  61.  
  62.  
  63.  
  64. int main()
  65. {
  66.     Outer outer_obj;
  67.     outer_obj.print();
  68.     Outer::Inner lone_inner_obj;
  69.     lone_inner_obj.print();
  70.  
  71.  
  72.     Outer2 outer2_obj;
  73.     outer2_obj.print();
  74.  
  75.  
  76.     //std::cout << "Hello, " << name << "!\n";
  77. }
Advertisement
Add Comment
Please, Sign In to add comment