Új hozzászólás Aktív témák

  • caddie

    csendes tag

    válasz Zulfaim #140 üzenetére

    Hat a kod sok-sok sebbol verzik:

    - buff = ' 'zzz' ' ez mi ez?, miert nem hasznalsz inicializalasi listat?
    - kiiro operatornak nyugodtan lehet const buffer& -t atadni
    - += operatornt - minimalisan - igy modositanam:

    )
    buffer& buffer:: operator+=( const char* value)
    {
    char* temp=new char[size = strlen(buff)+ strlen(value) +1];
    strcpy(temp,buff);
    strcat( temp, value);
    delete[] buff;
    buff = temp;
    return *this;
    }


    teljesen feleslegesen masolgatsz es foglalsz memoriat. Jelen pillanatban nem ellenerozom, hogy az atadott pointer null pointer / van legalabb 1 karkater benne stb. Ezt belehekkelheted.

    - ertekado operatornal, bevallom nem ertem ezt:

    for(int i=0;i<size;i++)
    {
    buff=e.buff;
    }


    ez mi ez?

    talan

    for(int i=0;i<size;i++)
    {
    buff [ .i. ] =e.buff [ .i. ] ; // konvertalas miatt :(
    }


    ? De ez sem jo, mert a vegere nem masolja oda a '/0' -t. Sztem erdemesebb lenne hasznalni a strcpy-t

    - kiiro operator hasonloan beteg

    - nem latok racionalis okot, hogy meirt van a += es az egyik ertakado operator az osztalyon belul definialva, a tobbi meg kivul.

    - copy konstruktor is beteg, keves memoriat foglalsz es utana u.a. a hulyeseg van mint ertakado operatornal

    - sztem teljsen feleslegesen a postfix incerementalo operatorok

    [Szerkesztve]

    ''C++ : Where friends have access to your private members.'' — Gavin Russell Baker.

Új hozzászólás Aktív témák