(六)Chat

#include<iostream>
#include <string>

using namespace std;

class User
{
    private:
        string name;
    
    public:
        User(string name)
        {
            this->name = name;  //(1)
        }
        ~User()
        {
            ;
        }

        void setName(string name)
        {
            this->name = name;
        }

        string getName()
        {
            return name;
        }

        void sendMessage(string message);
};

class ChatRoom
{
    public:
        static void showMessage(User* user, string message)
        {
            cout << "{" <<user->getName() << "}:" << message << endl;
        }
};

void User::sendMessage(string message)
{
    ChatRoom::showMessage(this,message);  //(2)
}

class ChatRoomSystem
{
    public:
        void startup()
        {
            User* zhang = new User("John");
            User* li = new User("Leo");

            zhang->sendMessage("Hi! Leo!");
            li->sendMessage("Hi! John!");
        }

        void join(User* user)
        {
            user->sendMessage("Hello Everyone! I am " + user->getName());  //(3)
        }
};

int main()
{
    ChatRoomSystem* crs = new ChatRoomSystem();   //(4)
    crs->startup();
    crs->join(new User("Wayne"));   //(5)
    delete crs;
    return 0;
}

答案:
(1) this->name

(2) ChatRoom::showMessage

(3) user->sendMessage

(4) new ChatRoomSystem()

(5) new User

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该...
    陈吉思_汗阅读 78评论 0 0
  • 控制器 新建控制器的定义 1/声明命名空间 app\模块\controller 2/控制器文件名首字母大写,采用驼...
    机器不能学习阅读 1,531评论 0 4
  • PHP7 已经出来1年了,PHP7.1也即将和大家见面,这么多好的特性,好的方法,为什么不使用呢,也希望PHP越来...
    梦幻_78af阅读 2,135评论 1 10
  • 把当前目录作为Root Document只需要这条命令即可:php -S localhost:3300 也可以指定...
    绚烂的时光阅读 747评论 0 1
  • 校园失物招领平台开发 ——基于laravel框架构建最小内容管理系统 摘要 ​ 针对目前大学校园人口密度大、人群活...
    蓝莲花xzsky阅读 6,256评论 8 54