From f9684d9c152e3e6384d3e7d44578c5ea7dbaef16 Mon Sep 17 00:00:00 2001 From: Ian Dinwoodie Date: Mon, 29 Apr 2019 20:03:39 -0400 Subject: [PATCH] Added prototype example source code. --- examples/creational/prototype.cpp | 49 +++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 examples/creational/prototype.cpp diff --git a/examples/creational/prototype.cpp b/examples/creational/prototype.cpp new file mode 100644 index 0000000..d57122a --- /dev/null +++ b/examples/creational/prototype.cpp @@ -0,0 +1,49 @@ +#include +#include + +class Sheep +{ + public: + Sheep(const std::string& name, const std::string& category) + : name_(name), category_(category) + { + } + + void setName(const std::string name) + { + name_ = name; + } + + std::string getName(void) + { + return name_; + } + + void setCategory(const std::string category) + { + category_ = category; + } + + std::string getCategory(void) + { + return category_; + } + + private: + std::string name_; + std::string category_; +}; + +int main() +{ + Sheep original = Sheep("Molly", "Mountain Sheep"); + std::cout << original.getName() << std::endl; // Output: Molly + std::cout << original.getCategory() << std::endl; // Output: Mountain Sheep + + Sheep clone = original; + clone.setName("Dolly"); + std::cout << clone.getName() << std::endl; // Output: Dolly + std::cout << clone.getCategory() << std::endl; // Output: Mountain Sheep + + return 0; +}