成员变量在一个成员函数的作用域中,而不在另一个成员函数的作用域中

Member variable in scope of one member function but not the other

本文关键字:成员 作用域 函数 另一个 一个 变量      更新时间:2023-10-16

我真的很困惑为什么会发生这种情况。我得到一个错误'未在此范围内声明'。它指向我的writeAcronym函数,而不是getAcronym,并且两者都使用了酶_acronym。是什么原因导致的呢?

SequenceMap.h

#ifndef SequenceMap_h
#define SequenceMap_h
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class SequenceMap
{
    private:
        string recognition_sequence_;
        vector<string> enzyme_acronyms_;
    public:
        string getAcronym();
        void writeAcronym(string an_enz_acro);
}

SequenceMap.cpp

#include "SequenceMap.h"
string SequenceMap::getAcronym()
{
    return enzyme_acronyms_[0];        //works fine
}
void writeAcronym(string an_enz_acro)
{
    enzyme_acronyms_.push_back(an_enz_acro);     //enzyme_acronyms_ not declared in this scope
}

您错过了第二个函数定义的SequenceMap::资格:

void SequenceMap::writeAcronym(string an_enz_acro)

必须这样声明:

void SequenceMap::writeAcronym(string an_enz_acro)
{
    enzyme_acronyms_.push_back(an_enz_acro);
}

您忘记了类范围SequenceMap::