我在此代码中找不到错误
在函数`BinaryCode :: decode(std :: string)'中:
undefined reference to `BinaryCode::m_vecStr'
undefined reference to `BinaryCode::m_vecStr'
undefined reference to `BinaryCode::m_vecStr'
undefined reference to `BinaryCode::m_vecStr'
undefined reference to `BinaryCode::m_vecStr'
more undefined references to `BinaryCode::m_vecStr' follow
http://codepad.org/PtZkGx6W
输出在以上站点中:
#include <iostream>
#include <stdio.h>
#include <vector>
#include <string>
using namespace std;
class BinaryCode{
public:
BinaryCode(void);
~BinaryCode(void);
static vector<string> m_vecStr;
vector<string> decode(string message);
};
BinaryCode::BinaryCode(void){
}
BinaryCode::~BinaryCode(void){
}
vector<string> BinaryCode::decode(string message){
m_vecStr.clear();
char szNone[]={"NONE"};
m_vecStr.push_back(szNone);
m_vecStr.push_back(message);
return m_vecStr;
}
int main(){
BinaryCode bc;
//cout<<bc.decode("12310122");
return 0;
}
最佳答案
您必须在类声明之外定义静态成员。尝试在类声明后添加以下内容:
vector<string> BinaryCode::m_vecStr;
如果要在不同的文件中声明类,请确保在实现文件(通常为
.cpp
)而不是头文件(.h
)中定义静态成员。