为什么我的参数不匹配
class Query
{
friend Query operator ~(const Query&);
friend Query operator |(const Query&,const Query&);
friend Query operator &(const Query&,const Query&);
public:
Query(const string&);
Query(const Query&c):q(c.q),use(c.use){++*use;}
~Query(){decr_use();}
Query& operator=(const Query&);
set<TextQuery::line_no>
eval(const TextQuery &t) const {return q->eval(t);}
ostream &display(ostream& os) const {return q->display(os);}
inline Query operator& (const Query & lhs, const Query & rhs)
{
return new AndQuery(lhs,rhs);
}
inline Query operator| (const Query & lhs,const Query & rhs)
{
return new OrQuery (lhs,rhs);
}
inline Query operator~ (const Query & oper)
{
return new NotQuery(oper);
}
inline ostream
operator<<(ostream &os,const Query &q)
{
return q.display(os);
}
private:
Query(Query_base *query):q(query),use(new size_t(1)){}
Query_base *q;
size_t *use;
void decr_use()
{
if(--*use==0)
delete q;
delete use;
}
};
C:\Program Files\Microsoft Visual Studio\MyProjects\query\Query_base.cpp(76) : error C2804: binary 'operator &' has too many parameters
C:\Program Files\Microsoft Visual Studio\MyProjects\query\Query_base.cpp(76) : error C2333: '&' : error in function declaration; skipping function body
C:\Program Files\Microsoft Visual Studio\MyProjects\query\Query_base.cpp(80) : error C2804: binary 'operator |' has too many parameters
C:\Program Files\Microsoft Visual Studio\MyProjects\query\Query_base.cpp(80) : error C2333: '|' : error in function declaration; skipping function body
C:\Program Files\Microsoft Visual Studio\MyProjects\query\Query_base.cpp(84) : error C2808: unary 'operator ~' has too many formal parameters
C:\Program Files\Microsoft Visual Studio\MyProjects\query\Query_base.cpp(84) : error C2333: '~' : error in function declaration; skipping function body
C:\Program Files\Microsoft Visual Studio\MyProjects\query\Query_base.cpp(89) : error C2804: binary 'operator <<' has too many parameters
C:\Program Files\Microsoft Visual Studio\MyProjects\query\Query_base.cpp(89) : error C2333: '<<' : error in function declaration; skipping function body
Error executing cl.exe.