1

私はこのWord.ccを持っています。これは、単語を操作するための文字列クラスのようなものです。フレンド関数として演算子<<をオーバーロードしましたが、これを取得し続けると、「Word a()のアドレスはtrueと評価されます」。私が間違っているかもしれないところについてコメントしてもらえますか?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;
}
4

1 に答える 1

5

最も厄介な解析:

Word a();

する必要があります

Word a;
于 2012-08-04T17:10:25.443 に答える