我有这个Word.cc,就像操作单词的字符串类一样。我重载了运算符<<作为朋友的功能,但当我不断得到这个“Word的地址()将评价为真”。你能否评论一下我可能出错的地方?我在main中使用的代码如下。
int main()
{
Word a();
cout<<a;
return 0;
}
Word::Word()
{
init("");
}
void Word::init(char *c,char *stoppers)
{
char *temp="\0";
if(c==NULL)
c=temp;
size=strlen(c)==0 ? DEFAULT_SIZE :(strlen(c)+1+DEFAULT_SIZE)/DEFAULT_SIZE*DEFAULT_SIZE;
wd=new char[size+1];
delimiters=new char[strlen(stoppers)+1];
strcpy(wd,c);
strcpy(delimiters,stoppers);
count=strlen(wd);
}
ostream & operator<<(ostream &out,const Word &b)
{
out<<b.wd;
return out;
}
答案 0 :(得分:5)
最令人烦恼的解析:
Word a();
应该是
Word a;