Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- class Msg
- {
- public:
- //конструктор-сеттер
- Msg(std::string msg)
- {
- this->msg = msg;
- }
- //виртуальный геттер
- virtual std::string getMsg()
- {
- return msg;
- }
- private:
- std::string msg;
- };
- class BraketsMsg : public Msg
- {
- public:
- //этот конструктор полностью наследует конструктор класса Msg
- BraketsMsg(std::string msg) : Msg(msg) {}
- //перегрузка виртуального метода класса Msg для класса BraketsMsg
- //возврат значения функции-потомка унаследованного класса
- std::string getMsg() override
- {
- //возврат значения функции базового класса Msg
- return "[" + Msg::getMsg() + "]";
- }
- };
- class Printer
- {
- public:
- //функция, принимающая в параметрах ссылку на объект класса и ,возвращающая значение функции getMsg() одного из классов
- void Print(Msg *msg)
- {
- std::cout << msg->getMsg() << std::endl;
- }
- };
- int main(int argc, char *argv[])
- {
- setlocale(LC_ALL, "Rus");
- srand(time(NULL));
- Msg msg("Раз");
- BraketsMsg mes("Два");
- Printer get;
- get.Print(&msg);
- get.Print(&mes);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement