对于类,我试图重载 << 运算符,以便打印出我创建的对象。我声明并添加到这个
WORD you; //this is a linked list that contains 'y' 'o' 'u'
我想这样做
cout << you; //error: no operator "<<" matches theses operands
我必须将插入运算符作为友元函数重载,并通过链接打印一个单词。
我已经声明并定义了重载函数,但它仍然不起作用。这是类声明文件,后面是带有函数的.cpp文件
#include <iostream>
using namespace std;
#pragma once
class alpha_numeric //node
{
public:
char symbol; //data in node
alpha_numeric *next;//points to next node
};
class WORD
{
public:
WORD(); //front of list initially set to Null
//WORD(const WORD& other);
bool IsEmpty(); //done
int Length();
void Add(char); //done
void Print(); //dont
//void Insert(WORD bword, int position);
//WORD operator=(const string& other);
friend ostream & operator<<(ostream & out, alpha_numeric *front);//******************<-----------------
private:
alpha_numeric *front; //points to the front node of a list
int length;
};
在 .cpp 文件中,我*front
输入了参数,因为front
当我尝试在函数中使用它时它说没有定义,即使我在类中声明了它。然后我尝试了这个。我不知道它是否正确。
ostream & operator<<(ostream & out, alpha_numeric *front)
{
alpha_numeric *p;
for(p = front; p != 0; p = p -> next)
{
out << p -> symbol << endl;
}
}