我收到一条错误消息,提示未定义的引用
encrypt(int, std::list<int, std::allocator<int> >*)
这是我尝试使用的方式:
decka = new list<int>;
ifstream inF;
inF.open(filename.c_str());
if (inF.fail()){
cerr << "Error opening file" << endl;
exit(1);
}
int deckcount = 28;
int card;
for(int i = 0; i != deckcount; i++){
inF >> card;
decka->push_back(card);
}
inF.close();
if(eorD == "e")
convertM(message);
int esize = message.length();
convertToNum(message);
encrypt(esize, decka);
}
错误来自我尝试调用加密的地方。
这是加密功能:
void encrypt(int msize, list<int> *L){
int jokeA = 27;
int jokeB = 28;
list<int>::iterator a = std::find(L->begin(), L->end(), jokeA);
list<int>::iterator new_position = a;
for(int i=0; i < 1 && new_position != L->begin(); i++)
new_position--;
L->insert(new_position, 1, *a);
L->erase(a);
}
这样您就可以看到如何在此处定义该类:
class DeckOps{
public:
DeckOps(string, string, string);
~DeckOps();
string convertM(string);
string convertToNum(string);
void encrypt(int, list<int>*);
private:
list<int> *decka;
};
我在这里的目标是能够使用我的加密功能访问dela的元素。
最佳答案
void encrypt(int msize, list<int> *L){
应该:
void DeckOps::encrypt(int msize, list<int> *L){
关于c++ - 帮助指针和传递链表作为参数,未定义引用c++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6084226/