StrBuf::operator <<( const StrPtr * )
Append a StrPtr
to a StrBuf
. The string
pointed to by the StrPtr
's buffer
is logically
appended to the string pointed to by the StrBuf
's
buffer
.
Virtual? |
No |
|
Class |
||
Arguments |
|
(implied) pointer to the |
Returns |
|
reference of the |
Notes
Exactly the number of bytes specified by the StrPtr
's
length
are appended to the StrBuf
. The
StrBuf
's length
is incremented by the
StrPtr
's length
.
If the memory for the StrBuf
's buffer
is not
large enough, new contiguous memory is allocated to contain the results
of appending the StrPtr
. If new memory is allocated, the old
memory is freed. Any memory allocated is separate from the memory for the
StrPtr
.
Example
#include <iostream> #include <stdhdrs.h> #include <strbuf.h> int main( int argc, char **argv ) { StrRef sr( "zy" ); StrPtr *sp = &sr; StrBuf sb; sb.Set( "xyz" ); cout << "sb.Text() prior to sb << sp returns "; cout << "\"" << sb.Text() << "\"\n"; cout << "sb.Length() prior to sb << sp returns "; cout << sb.Length() << "\n\n"; sb << sp; // append StrPtr * to StrBuf cout << "sb.Text() after sb << sp returns "; cout << "\"" << sb.Text() << "\"\n"; cout << "sb.Length() after sb << sp returns "; cout << sb.Length() << "\n"; }
Executing the preceding code produces the following output:
sb.Text() prior to sb << sp returns "xyz" sb.Length() prior to sb << sp returns 3 sb.Text() after sb << sp returns "xyzzy" sb.Length() after sb << sp returns 5