成员变量在一个成员函数的作用域中,而不在另一个成员函数的作用域中
Member variable in scope of one member function but not the other
我真的很困惑为什么会发生这种情况。我得到一个错误'未在此范围内声明'。它指向我的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::
。
相关文章:
- 在构造函数中输入对象时C++类成员作用域
- 为什么不能直接引用作用域枚举类成员,而不能为无作用域枚举生成类成员?
- 无法从派生类型的作用域访问另一个实例的受保护成员
- 缩短成员函数作用域说明符(嵌套类)(C++)
- 在没有显式作用域的情况下无法访问模板基类的静态成员
- 类的静态成员变量(受保护)的作用域
- 使用作用域内生成的指针初始化静态成员
- 我可以使用相同的名称为周围作用域中的类型声明成员类型别名吗
- 类成员的 OpenCL 上下文作用域
- C++静态成员函数中静态变量的作用域
- 返回具有引用父作用域中变量的函数成员的结构
- 如何在类的作用域中定义函数,而不是将其定义为成员函数
- 将函子映射到失去作用域的成员函数
- 成员类作用域中的引用
- 条件if中类成员的作用域
- 使用作用域运算符访问非静态成员变量
- C++通过类作用域访问实例的成员
- 使用指向成员的指针时,如何通过作用域解析运算符获取类成员的地址
- 内部作用域枚举、哈希函数和无序集数据成员
- 静态成员初始化器的Lambda作用域