| // Copyright 2011 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| class Callback { | |
| public: | |
| virtual ~Callback() { } | |
| virtual std::string run() { return "Callback::run"; } | |
| }; | |
| class Caller { | |
| private: | |
| Callback *callback_; | |
| public: | |
| Caller(): callback_(0) { } | |
| ~Caller() { delCallback(); } | |
| void delCallback() { delete callback_; callback_ = 0; } | |
| void setCallback(Callback *cb) { delCallback(); callback_ = cb; } | |
| std::string call(); | |
| }; |