c,指针错误? Word a()将始终评估为true

时间:2012-08-04 17:07:25

标签: c++

我有这个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;
}

1 个答案:

答案 0 :(得分:5)

最令人烦恼的解析:

Word a();

应该是

Word a;