繁体   English   中英

一个类里面的C ++队列,分段错误

[英]C++ queue inside a class, segmentation fault

有人可以说,为什么我的代码中有分段错误? 我不知道为什么会这样。 我使用Code:Blocks但在线编译器也有同样的问题。 我不知道问题出在哪里。

#include <iostream>
#include <queue>
#include <memory>

using namespace std;

class Task {   
private:
    queue <string> q;
    public:
    string input;
    void read (int hm)
    {
        for (int i=1;i<=hm;i++)
        { 
            cin>>input;
            q.push(input);
        }
    }
    void count()
    {
        cout<<q.back();
    }
};

int main()
{
    unique_ptr <Task> ptr;

    int how_many;
    cin>>how_many;
    ptr->read(how_many);
    ptr->count();
    return 0;
}

指针ptr正在使用而未被初始化。 采用:

std::unique_ptr<Task> ptr = std::make_unique<Task>();

话虽如此,您还应该明确包含<string>标头。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM