ptypes

ptypes Mercurial Source Tree


Root/doc/string.constructors.html

<html><!-- #BeginTemplate "/Templates/tmpl.dwt" --><!-- DW6 -->
<head>
<!-- #BeginEditable "doctitle" --> 
<title>PTypes: string: constructors/destructors</title>
<!-- #EndEditable --> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="styles.css">
</head>
<body bgcolor="#FFFFFF" leftmargin="40" marginwidth="40">
<p><a href="../index.html"><img src="title-21.png" width="253" height="39" alt="C++ Portable Types Library (PTypes) Version 2.1" border="0"></a> 
<hr size="1" noshade>
<!-- #BeginEditable "body" --> 
<p class="hpath"><a href="index.html">Top</a>: <a href="basic.html">Basic types</a>: 
<a href="string.html">string</a>: Constructors/destructors</p>
<blockquote> 
<pre class="lang">#include <ptypes.h>

class string {
    string();
    string(const string&);
    string(char);
    string(const char*);
    string(const char*, int);
    ~string();
}
</pre>
</blockquote>
<p>A string object can be constructed in 5 different ways:</p>
<ul>
<li> 
<p> default constructor <span class="lang">string()</span> creates an empty string.</p>
</li>
<li> 
<p>copy constructor <span class="lang">string(const string& s)</span> creates 
a copy of the given string <span class="lang">s</span>. Actually this constructor 
only increments the reference count by 1 and no memory allocation takes place.</p>
</li>
<li> 
<p><span class="def">string(char c)</span> constructs a new string consisting 
of one character <span class="lang">c</span>.</p>
</li>
<li> 
<p><span class="def">string(const char* s)</span> constructs a new string object 
from a null-terminated string. If <span class="lang">s</span> is either <span class="lang">NULL</span> 
or is a pointer to a null character, an empty string object is created. This constructor 
can be used to assign a string literal to a string object (see examples below).</p>
</li>
<li> 
<p><span class="def">string(const char* s, int len)</span> copies <span class="lang">len</span> 
bytes of data from buffer <span class="lang">s</span> to the newly allocated string 
buffer.</p>
</li>
</ul>
<p>Destructor <span class="lang">~string()</span> decrements the reference count 
for the given string buffer and removes it from the dynamic memory if necessary.</p>
<p><b>Examples:</b></p>
<blockquote> 
<pre>string s1;             <span class="comment">// empty string</span>
string s2 = s1;        <span class="comment">// copy</span>
string s3 = 'A';       <span class="comment">// single character</span>
string s4 = "ABCabc";  <span class="comment">// string literal</span>
char* p = "ABCabc";
string s5 = p;         <span class="comment">// null-terminated string</span>
string s6(p, 3);       <span class="comment">// buffer/length</span>
</pre>
</blockquote>
<p class="seealso">See also: <a href="string.operators.html">Operators</a>, <a href="string.typecasts.html">Typecasts</a>, 
<a href="string.manipulation.html">Manipulation</a>, <a href="string.conversion.html">Conversion</a></p>
<!-- #EndEditable -->
<hr size="1">
<a href="../index.html" class="ns">PTypes home</a>
</body>
<!-- #EndTemplate --></html>
Source at commit 209d6fa3805c created 11 years 7 months ago.
By Nathan Adams, Updating tparray to use variants as array because tpodlist was causing variant data corruption

Archive Download this file

Branches

Tags

Page rendered in 0.74571s using 11 queries.