/docs/MyDocs

To get this branch, use:
bzr branch http://darksoft.org/webbzr/docs/MyDocs

« back to all changes in this revision

Viewing changes to Development/languages/C/Samples.CPP/overriding.cpp

  • Committer: Suren A. Chilingaryan
  • Date: 2009-04-09 03:21:08 UTC
  • Revision ID: csa@dside.dyndns.org-20090409032108-w4edamdh4adrgdu3
import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <string>
 
2
#include <iostream>
 
3
#include <sstream>
 
4
 
 
5
using namespace std;
 
6
 
 
7
class A {
 
8
  public:
 
9
  
 
10
  class B {
 
11
    public:
 
12
    B() {
 
13
        puts("Doing B");
 
14
    }
 
15
  };
 
16
  
 
17
  A() {
 
18
    puts("Doing A");
 
19
    B b;
 
20
    F();
 
21
  }
 
22
  
 
23
  void F() { puts("F"); }
 
24
  virtual void VF() { puts("VF"); }
 
25
  
 
26
  void Call() { puts("CALL"); B b; F(); VF(); }
 
27
};
 
28
 
 
29
class AO : public A {
 
30
 public:
 
31
    class B : public A::B {
 
32
     public:
 
33
        B() : A::B() {
 
34
            puts("Doing BO");
 
35
        }
 
36
    };
 
37
    
 
38
    AO() : A() {
 
39
        puts("Doing AO");
 
40
    }
 
41
    
 
42
    void F() { puts("FO"); }
 
43
    virtual void VF() { puts("VFO"); }
 
44
};
 
45
 
 
46
 
 
47
main() {
 
48
    AO mmm;
 
49
    mmm.Call();
 
50
}