| namespace Container |
| { |
| class Widget |
| { |
| public: |
| Widget (int inVal) : containerVar (inVal) {}; |
| int report (void) |
| { |
| return containerVar; |
| }; |
| private: |
| int containerVar; |
| }; |
| } // namespace Container |
| |
| namespace Container |
| { |
| namespace Contained |
| { |
| class Widget : public Container::Widget |
| { |
| public: |
| Widget (int contVal, int baseVal) : Container::Widget (baseVal), contVar (contVal) {}; |
| int report (void) |
| { |
| return contVar * Container::Widget::report (); |
| }; |
| private: |
| int contVar; |
| }; |
| } // namespace Contained |
| } // namespace Container |
| |
| int reportBase (Container::Widget *input) |
| { |
| return input->report (); /* good stopping point in reportBase */ |
| } |
| |
| int main () |
| { |
| Container::Widget base (10); |
| Container::Contained::Widget cont (100, 200); |
| |
| return reportBase (&cont) * cont.report(); /* good stopping point in main */ |
| |
| } |
| |