首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++向量发出“阻止匹配的限定符”

C++向量发出“阻止匹配的限定符”
EN

Stack Overflow用户
提问于 2013-03-30 02:14:57
回答 1查看 65关注 0票数 0
代码语言:javascript
运行
复制
void Exam:: read_questions(string filename) const{
    ifstream file;
    file.open(filename);
    if (file.is_open()){
        string line;
        while(getline(file,line)){
            Question* currentQuestion =  parse_question(line);
            question_list.push_back(currentQuestion);
        }
    }else{
        cout << "invalid file" << endl;
    }
    file.close();
}

与行question_list.push_back(currentQuestion);有问题,它给出了一个错误的说法

没有重载函数的实例

而且还说

Push_back:对于带有_Ty=Question *的“this”指针1,2个重载没有合法转换。

这个错误意味着什么?我如何修复它?

下面是要检查的头文件:

代码语言:javascript
运行
复制
class Exam 
{
public:
    Exam();
    Exam(int num_q, int min_chap, int max_chap);
    void read_questions(string filename) const;
    ~Exam();
    void write_exam(string filename) const;
    void write_key(string filename) const;
    void shuffle();

private:
    vector<Question *> question_list;
    int minC;
    int maxC;
    int numQ;
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-30 02:36:32

问题在于您以这种方式声明read_question

代码语言:javascript
运行
复制
void Exam:: read_questions(string filename) const

这里的const是说您的函数不会修改调用它的对象。然后在函数中,您执行以下操作:

代码语言:javascript
运行
复制
question_list.push_back(currentQuestion);

question_list是一个成员变量,所以您违背了您的承诺。编译器在上面打电话给你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15714176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档