我需要使用虚拟<<运算符.但是,当我尝试写:
virtual friend ostream & operator<<(ostream& os,const Advertising& add);
Run Code Online (Sandbox Code Playgroud)
我得到编译器错误
错误1错误C2575:'operator <<':只有成员函数和基数可以是虚拟的
如何将此运算符设为虚拟?
我尝试为我的大学项目设计一个模板.我写了以下代码:
#ifndef _LinkedList_H_
#define _LinkedList_H_
#include "Link.h"
#include <ostream>
template <class L>//error one
class LinkedList
{
private:
Link<L> *pm_head;
Link<L> * pm_tail;
int m_numOfElements;
Link<L>* FindLink(L * dataToFind);
public:
LinkedList();
~LinkedList();
int GetNumOfElements(){return m_numOfElements;}
bool Add( L * data);
L *FindData(L * data);
template <class L> friend ostream & operator<<(ostream& os,const LinkedList<L> listToprint);//error two
L* GetDataOnTop();
bool RemoveFromHead();
L* Remove(L * toRemove);
Run Code Online (Sandbox Code Playgroud)
这个模板使用链接类templete
#ifndef _Link_H_
#define _Link_H_
template <class T>//error 3
class Link
{
private:
T* m_data;
Link* m_next;
Link* …Run Code Online (Sandbox Code Playgroud)