#include class render_object { private: virtual void render_begin_object() = 0; virtual void render_middle_object() = 0; virtual void render_end_object() = 0; public: int object_length; virtual void draw_object() = 0; }; class phallus : public render_object { private: void render_begin_object(); void render_middle_object(); void render_end_object(); public: void draw_object(); }; void phallus::render_begin_object() { std::cout << "8"; } void phallus::render_end_object() { std::cout << "D" << std::endl; } void phallus::render_middle_object() { int index; for (index = 0; index < object_length; index++) std::cout << "="; } void phallus::draw_object() { render_begin_object(); render_middle_object(); render_end_object(); } int main (void) { phallus penis; penis.object_length = 10; penis.draw_object(); return 0; }