c ++对Code :: morsecode()的未定义引用和对Code :: alphacode()的未定义引用

时间:2017-11-26 10:26:38

标签: c++

获取此错误 未定义的代码参考:: morsecode() 未定义的Code :: alphacode()引用 collect2:错误:ld返回1退出状态

我使用c ++ morsecode.cpp编译。我无法弄清楚问题是什么?试图查看我的代码,看看问题所在,但我无法弄清问题是什么。 任何帮助表示赞赏。感谢

#include <string>
#include <vector>
#include <iostream>

using namespace std;

class Code
{
public:
Code();         //Default Constructor

string decode(vector<string> message);  //Decodes message
private:
vector<string> codewords;   //codeword vector parallel to A-Z

vector<char> alpha;     //this is the vector for A-Z    

vector<char> alphacode();   //Function that builds the vector alpha -A B C...

vector<string> morsecode(); //function builds the vector codewords containing                         morsecode

char decode(string c);      //returns the character for the codeword c.
};

Code::Code()
{
codewords = morsecode();
alpha = alphacode();
}

string Code::decode(vector<string> message)
{
string temp;
for(int i = 0; i < message.size(); i++)
{
  temp += decode(message[i]);
}   
return temp;
}

char Code::decode(string c)
{
for(int i = 0; i < alpha.size(); i++)
{
  if(c == codewords[i])
  {
    return alpha[i];
  }
}
}



// This function returns a vector containing the morse code
vector<string> morsecode()
{ 
 vector<string> temp(28);
 temp[0] =".-";
 temp[1] ="-...";
 temp[2] ="-.-.";
 temp[3] ="-..";
 temp[4] =".";
 temp[5] ="..-.";
 temp[6] ="--.";
 temp[7] ="....";
 temp[8] ="..";
 temp[9] =".---";
 temp[10] ="-.-";
 temp[11] =".-..";
 temp[12] ="--";
 temp[13] ="-.";
 temp[14] ="---";
 temp[15] =".--.";
 temp[16] ="--.--";
 temp[17] =".-.";
 temp[18] ="...";
 temp[19] ="-";
 temp[20] ="..-";
 temp[21] ="...-";
 temp[22] =".--";
 temp[23] ="-..-";
 temp[24] ="-.--";
 temp[25] ="--..";
 temp[26] =".......";
 temp[27] ="x";
 return temp;
}

// This returns a vector containing the alphabet a-z and " "
vector<char> alphacode()
{
 vector<char> temp;
 for (char c='A'; c<='Z'; c++)
  temp.push_back(c);
  temp.push_back(' ');
  temp.push_back('.');
 return temp;
}

//Main Program
int main()
{
vector<string> message;
string temp;
Code c;

cin >> temp;

while (cin.good())
{
  message.push_back(temp);
  cin >> temp;
}

cout << c.decode(message) << endl;

return 0;
}

1 个答案:

答案 0 :(得分:0)

定义的独立函数vector<string> morsecode()不是所需的vector<string> Code::morsecode()