簡體   English   中英

成員變量在一個成員函數的范圍內而不是另一個成員函數

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

我真的很困惑為什么會這樣。 我得到一個錯誤'enzyme_acronyms_未在此范圍內聲明'。 它指向我的writeAcronym函數,但不是getAcronym,都使用了酶_acronyms_。 什么可能導致這種情況?

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:: qualified:

void SequenceMap::writeAcronym(string an_enz_acro)

它必須像這樣聲明:

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

你忘了了類范圍SequenceMap::

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM