#includeusing namespace std;class Product{public: virtual ~Product() {} virtual void Action()=0;};class ConcreteProduct : public Product{public: ConcreteProduct() {} ~ConcreteProduct() {} void Action() { cout<<"ConcreteProduct::Action"< Action(); }private: Product* m_pProduct;};int main(int argc, char *argv[]){ ConcreteProduct realProduct; realProduct.Action(); SaleProxy proxy; proxy.Action(); return 0;}