from smart_pointer_not import * f = Foo() b = Bar(f) s = Spam(f) g = Grok(f) try: x = b.x raise RuntimeError("Error! b.x") except AttributeError: pass try: x = s.x raise RuntimeError("Error! s.x") except AttributeError: pass try: x = g.x raise RuntimeError("Error! g.x") except AttributeError: pass try: x = b.getx() raise RuntimeError("Error! b.getx()") except AttributeError: pass try: x = s.getx() raise RuntimeError("Error! s.getx()") except AttributeError: pass try: x = g.getx() raise RuntimeError("Error! g.getx()") except AttributeError: pass