>>777

cstr operator+(cstr& cs) {
cstr tmp;
tmp.buf = new char[strlen(buf) + strlen(cs.buf) + 1];
strcpy(tmp.buf, buf);
strcat(tmp.buf, cs.buf);
return tmp;
}

とでもすれば?無理に参照を返そうとするとうまくいかない。