2015-10-02 53 views
1

我很困惑爲什麼會發生這種情況。我收到一個錯誤'酶_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 
} 
+1

應該添加「void SequenceMap ::」。 – FaizanRabbani

回答

2

你已經錯過了第二個函數定義SequenceMap::資格:

void SequenceMap::writeAcronym(string an_enz_acro) 
1

必須聲明如下:

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

您忘記了班級範圍SequenceMap::

相關問題