ddbbi 2022-04-14 11:38 采纳率: 50%
浏览 12

c++ 基类指针 入队列queue错误

问题遇到的现象和发生背景

c++ 基类指针 入队列错误

问题相关代码,请勿粘贴截图

以下是出错的地方

void Simulater::coustomerEnter(int ArriveTime) {
    srand(time(0));
    User* u;
    NormalUser a(ArriveTime);
    switch (rand() % 3) {
    case 0: {
        NormalUser nomaluser(ArriveTime);
        NormalUserQueue.push(nomaluser);
        break;
    }//普通用户
    case 1: {
        VIPUser vipuser(ArriveTime);
        VIPUserQueue.push(vipuser);
        break;
    }
    case 2: {
        u = new OfficialUser(ArriveTime);
        OfficialUserQueue.push(*u);
        break;
    }
    }
}

以下是类的实现


class User {
public:
    int id;
    int isWait;
    int ArriveTime;
private:
    int ServeTime=4000;//ms
    wchar_t type;
public:
    User(int ArriveTime_) :ArriveTime(ArriveTime_) {};
    virtual void getServed() = 0;
};

class NormalUser :public User {
public:
    NormalUser(int ArriveTime_) :User(ArriveTime_) {};
    void getServed() {

    };
};

class VIPUser :public User {
public:
    VIPUser(int ArriveTime_) :User(ArriveTime_) {};
    void getServed() {

    };
};

class OfficialUser :public User {
public:
    OfficialUser(int ArriveTime_) :User(ArriveTime_) {};
    void getServed() {

    };
};
运行结果及报错内容

case 2中push(*u),无法将基类指针指向的子类入队列

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

2条回答 默认 最新

  • 卡尔曼的BD SLAMer 计算机视觉领域新星创作者 2022-04-14 11:48
    关注

    你那也不是指针啊,不用

    评论

报告相同问题?

问题事件

  • 创建了问题 4月14日

悬赏问题

  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别
  • ¥15 NRF24L01能发送但是不能接收
  • ¥15 想问一下这种情况怎么解决呢(关键词-file)
  • ¥15 python Flassk 模块部署 服务器时报错
  • ¥15 Opencv(C++)异常
  • ¥15 VScode上配置C语言环境
  • ¥15 汇编语言没有主程序吗?
  • ¥15 这个函数为什么会爆内存