Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class P
- {
- public:
- void a( );
- };
- class PW
- {
- public:
- PW( const P& p ) : p( p ) { }
- void b( );
- P& p;
- };
- class C
- {
- public:
- P GetP( ) const { return p; }
- private:
- P p;
- };
- // ...
- PW& p = c.GetP( ); // valid
- // ...
- // ...
- p->p->a( )
- // ...
- class P
- {
- public:
- void a( ) { std::cout << "a" << std::endl; }
- };
- class PW
- {
- public:
- PW(P& p) : p(p) { }
- void b( ) { std::cout << "b" << std::endl; }
- P & operator*() { return p; }
- P * operator->() { return &p; }
- private:
- P & p;
- };
- class C
- {
- public:
- P & getP() { return p; }
- private:
- P p;
- };
- int main()
- {
- C c;
- PW pw(c.getP());
- (*pw).a();
- pw->a();
- pw.b();
- return EXIT_SUCCESS;
- }
- a
- a
- b
Add Comment
Please, Sign In to add comment