tag:blogger.com,1999:blog-53628100689837249962024-03-13T20:46:43.268-07:00感悟者--inspirer务实,上进;
淡泊,从容;
来也匆匆,去也空空;
世尘纷扰,空者自空。XuBloghttp://www.blogger.com/profile/03402989681995652657noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-5362810068983724996.post-42586506151264495722015-02-04T12:50:00.000-08:002015-02-04T12:50:50.975-08:00DSRC VSmartVSmart Testbed from McGill Lab.<br />
<a href="https://sites.google.com/site/xichenmcgill/vsmart">https://sites.google.com/site/xichenmcgill/vsmart</a><br />
<br />XuBloghttp://www.blogger.com/profile/03402989681995652657noreply@blogger.com0tag:blogger.com,1999:blog-5362810068983724996.post-53951918286526878822014-02-26T17:35:00.000-08:002014-02-26T18:53:08.544-08:00Vagrant in Arch LinuxI am using vagrant recently and come across some problems in Arch Linux.<br />
Here I share the experience with all of you.<br />
<br />
Before installing vagrant, you should at least have the virtualbox installed. If not, following <a href="https://wiki.archlinux.org/index.php/VirtualBox">the official instructions</a>.<br />
<br />
There are two important steps here, which cannot be ignored:<br />
<a href="https://wiki.archlinux.org/index.php/VirtualBox#Load_the_VirtualBox_kernel_modules">Step 1.</a><br />
<a href="https://wiki.archlinux.org/index.php/VirtualBox#Load_the_Virtualbox_kernel_modules_2">Step 2.</a><br />
<h4>
Install vagrant</h4>
<br />
Vagrant is not available in Arch Linux official repository for the moment. However, it can be downloaded from <a href="https://aur.archlinux.org/packages/vagrant/">AUR</a>.<br />
<br />
The repository provides rpm version, which means we cannot install the package directly by using <b><i>pacman</i></b>. As suggested by Peter, using <a href="https://wiki.archlinux.org/index.php/AUR_Helpers">AUR helper</a> is a better way to install the package.<br />
<br />
Crate or download your vagrant configuration file.<br />
<br />
to download and/or start your guest.<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); padding: 1em;">vagrant up</pre>
<br />
To access the server you deployed.<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); padding: 1em;">vagrant ssh</pre>
<br />
<h4>
<b>NFS</b></h4>
If you use NFS to synchronize the files between host and guest, you need to install some extra packages in your host and guest.<br />
<br />
<b>For arch host</b>, the following packages should be installed.<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); padding: 1em;">pacman -S nfs-utils</pre>
<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); padding: 1em;">pacman -S net-tools</pre>
<br />
<br />
To start nfs, <a href="https://wiki.archlinux.org/index.php/NFS#Starting_the_server">the following services</a> should be start<br />
<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); padding: 1em;">systemctl start rpc-idmapd.service</pre>
<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); padding: 1em;">systemctl start rpc-mountd.service</pre>
<br />
<br />
To start nfs during the bootup.<br />
<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); padding: 1em;">systemctl enable rpc-idmapd.service</pre>
<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); padding: 1em;">systemctl enable rpc-mountd.service</pre>
<br />
<br />
<b>For arch guest</b>, the following modules should be installed.<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); padding: 1em;">apt-get install nfs-common portmap</pre>
<br />
<div>
<br /></div>
<div>
<br /></div>
XuBloghttp://www.blogger.com/profile/03402989681995652657noreply@blogger.com4tag:blogger.com,1999:blog-5362810068983724996.post-71948215999033231312012-09-05T12:14:00.000-07:002012-09-05T12:14:26.427-07:00Get back your privilege for your Ubuntu.<p>Recently, I lost my sudo privilege for linux system, which make me feel panic. I don't want to reinstall the system again. I got no time to do this.<br />
However, I was lucky enough to find a solution.<br />
<p>
<br />
<br />
<p>
In fact it is easy. Restart the system and select recovery mode from grub menu.
</p>
<p>
Next step, just select fsck so that you can mount / as a writeable directory.
</p>
<p>
When you finish the step above, select enter the system as root.
</p>
<p>
<pre name="code" class="plain">sudo addgroup your-username sudo</pre>
</p>
<p>
Now you are fine.
</p>XuBloghttp://www.blogger.com/profile/03402989681995652657noreply@blogger.com0tag:blogger.com,1999:blog-5362810068983724996.post-82171956244727172432012-06-17T15:32:00.003-07:002012-06-17T15:32:38.216-07:00How to use Rssi value to calculate DistanceBefore we start to explain the formula. We have to make it clear about db and dbm.<br />
db is just a kind of ratio between two value. db=10*lg(x/y)<br />
so dbm is a ratio between a power value and 1 mWatt.<br />
<br />
0dbm=10*lg(x/1mWatt), so x=1mWatt.<br />
10dbm=10*lg(y/1mWatt), so y=10mWatt.<br />
<br />
<br />
Thus, the difference between 2 two value in dbm is in db.<br />
<br />
10dbm-0dbm=10*lg(x/1mWatt)-10*lg(y/1mWatt)=10*lg(x/y)=10*lg(10mWatt/1mWatt)=10db<br />
<br />
<br />
Now lets look at the Log-distance path loss model:<br />
<br />
<img alt="PL\;=P_{Tx_{dBm}}-P_{Rx_{dBm}}\;=\;PL_0\;+\;10\gamma\;\log_{10} \frac{d}{d_0}\;+\;X_g," src="http://upload.wikimedia.org/wikipedia/en/math/6/f/2/6f2ee9de7fa32967f470f5bb007f3740.png" /> (1)<br />
<br />
P<span style="font-size: xx-small;">Txdbm</span> is the transmitted power in dbm, and P<span style="font-size: xx-small;">Rxdbm</span> is the received power in dbm.<br />
so the path loss PL is in db.<br />
<br />
Path loss, in fact, can be calculated in this formula:<br />
<br />
<img alt="L = 10\ n\ \log_{10}(d)+C" src="http://upload.wikimedia.org/wikipedia/en/math/8/1/0/81082555bda08f8c252b9093b7070919.png" /> (2)<br />
<br />
If we add a reference path loss into the formula, we can have:<br />
<br />
PL = PL<span style="font-size: xx-small;">0</span> - 10*n*lg(d<span style="font-size: xx-small;">0</span>) + 10*n*lg(d) + C = PL<span style="font-size: xx-small;">0</span> + 10*n*lg(d/d<span style="font-size: xx-small;">0</span>) + C (3)<br />
<br />
(3) is as same as (1).<br />
<br />
We now can use the data from experiment to calculate the distance from Rssi.<br />
<br />
Note: P<span style="font-size: xx-small;">Txdbm</span> is the initial power P for sending the message. P<span style="font-size: xx-small;">Rxdbm</span> is the Rssi value.<br />
<br />
First, choose a reference distance d<span style="font-size: xx-small;">0</span> and corresponding Rssi value. calculate the PL<span style="font-size: xx-small;">0</span> = P<span style="font-size: xx-small;">Txdbm </span>- P<span style="font-size: xx-small;">Rxdbm</span><br />
<span style="font-size: xx-small;"><br /></span><br />
Then, use the other data to make more formulas. We can use this formulas to get the value of γ and Xg<br />
<br />
Finally, we can get a function between Rssi and d<br />
<br />
Rssi(d) = P - PL<span style="font-size: xx-small;">0</span> - 10*γ*lg(d/d<span style="font-size: xx-small;">0</span>) + Xg<br />
<br />
P is the transmitted power.<br />
PL<span style="font-size: xx-small;">0</span> is the reference path loss.<br />
d<span style="font-size: xx-small;">0</span> is the reference distance.<br />
γ is the path loss exponent.<br />
<br />
reference:<br />
<a href="http://en.wikipedia.org/wiki/Log-distance_path_loss_model">http://en.wikipedia.org/wiki/Log-distance_path_loss_model</a>
<br />
<a href="http://en.wikipedia.org/wiki/Path_loss#Loss_exponent">http://en.wikipedia.org/wiki/Path_loss#Loss_exponent</a>XuBloghttp://www.blogger.com/profile/03402989681995652657noreply@blogger.com0tag:blogger.com,1999:blog-5362810068983724996.post-24331611614247558962012-05-24T19:39:00.002-07:002012-06-03T21:50:18.790-07:00TinyOS-2.1.1 Installation on Ubuntu 12.04 and Hello WorldI am working on TinyOS and nesc recently, but installation confused me for a long time.<br />
Finally, I found a way to make it.<br />
Install TinyOS-2.1.1 on Ubuntu 12.04<br />
<br />
<br />
<ol>
<li>add TinyOS-2.1.1 to source list. <br />You can open the<b> <i>/etc/apt/source.list </i></b>to edit the file. <br /><pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); line-height: 1.1em; padding: 1em;">sudo gedit /etc/apt/sources.list</pre>
<br /> and add<br /><pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); line-height: 1.1em; padding: 1em;"> deb <a class="external free" href="http://tinyos.stanford.edu/tinyos/dists/ubuntu" rel="nofollow" style="background-image: url(http://docs.tinyos.net/tinywiki/skins/monobook/external.png); background-position: 100% 50%; background-repeat: no-repeat no-repeat; color: #3366bb; padding-right: 13px; text-decoration: none;" title="http://tinyos.stanford.edu/tinyos/dists/ubuntu">http://tinyos.stanford.edu/tinyos/dists/ubuntu</a> natty main</pre>
<br />
or you can open ubuntu software centre and choose edit, choose software sources, other software, add, put the above sentence in the dialog.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdTcytATvvNqgkDfBtpA0Rkroee_PbaE8KH3bJgx544YqLDkHXc5NfFSaBfr7MmkWOun97M7SzJ5KB4RGUiRTWDpMleg5VqVQcGZY0R9SV-fO44268QNvZo6JCJ0xlG2DMOaEDIJMTHc0/s1600/Screenshot+from+2012-05-24+22:52:46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdTcytATvvNqgkDfBtpA0Rkroee_PbaE8KH3bJgx544YqLDkHXc5NfFSaBfr7MmkWOun97M7SzJ5KB4RGUiRTWDpMleg5VqVQcGZY0R9SV-fO44268QNvZo6JCJ0xlG2DMOaEDIJMTHc0/s320/Screenshot+from+2012-05-24+22:52:46.png" width="320" /></a></div>
</li>
<br />
<li>open your terminal, type in<br /><pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); line-height: 1.1em; padding: 1em;">sudo apt-get update</pre>
</li>
<li>install tinyos<br /><pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); line-height: 1.1em; padding: 1em;"> sudo apt-get install tinyos</pre>
</li>
<li>add the following lines to ~/.bashrc<br /><pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); line-height: 1.1em; padding: 1em;">source /opt/tinyos-2.1.1/tinyos.sh
export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.</pre>
</li>
</ol>
<br />
<br />
After you finish the above steps, you get TinyOS-2.1.1 successfully on your host. However, when you go to /opt/tinyos-2.1.1/apps/Blink to compile your first program<br />
<br />
<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); line-height: 1.1em; padding: 1em;">make telosb</pre>
<br />
<br />
you may get error like this:<br />
<br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">mkdir -p build/telosb</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">compiling BlinkAppC to a telosb binary</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">ncc -o build/telosb/main.exe -Os -O -mdisable-hwmul -fnesc-separator=__ -Wall -Wshadow -Wnesc-all -target=telosb -fnesc-cfile=build/telosb/app.c -board= -DDEFINED_TOS_AM_GROUP=0×22 -DIDENT_APPNAME=\”BlinkAppC\” -DIDENT_USERNAME=\”liruan\” -DIDENT_HOSTNAME=\”liruan-desktop\” -DIDENT_USERHASH=0x93f2e5efL -DIDENT_TIMESTAMP=0x4e98142bL -DIDENT_UIDHASH=0x40bf25adL BlinkAppC.nc -lm</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">In file included from /opt/tinyos-2.1.1/tos/platforms/telosa/PlatformLedsC.nc:38,</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">from /opt/tinyos-2.1.1/tos/system/LedsC.nc:38,</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">from BlinkAppC.nc:45:</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">In component `HplMsp430GeneralIOC’:</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:227: syntax error before `;’</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:321: cannot find `P30′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:322: cannot find `P31′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:323: cannot find `P31′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:324: cannot find `P32′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:325: cannot find `P33′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:326: cannot find `P33′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:327: cannot find `P34′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:328: cannot find `P35′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:330: cannot find `P50′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:331: cannot find `P51′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:332: cannot find `P52′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:333: cannot find `P53′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:334: cannot find `P36′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:335: cannot find `P37′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:337: cannot find `P60′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:338: cannot find `P61′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:339: cannot find `P62′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:340: cannot find `P63′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:341: cannot find `P64′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:342: cannot find `P65′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:343: cannot find `P66′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:344: cannot find `P67′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:346: cannot find `P66′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:347: cannot find `P67′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:349: cannot find `P67′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/chips/msp430/pins/HplMsp430GeneralIOC.nc:350: cannot find `P57′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">In component `PlatformLedsC’:</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/platforms/telosa/PlatformLedsC.nc:48: cannot find `Port54′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/platforms/telosa/PlatformLedsC.nc:51: cannot find `Port55′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">/opt/tinyos-2.1.1/tos/platforms/telosa/PlatformLedsC.nc:54: cannot find `Port56′</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;">make: *** [exe0] Error 1</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; line-height: 19px;"><br /></span><br />
<span style="color: #333333;"><span style="line-height: 19px;">It is the problem of msp430 packages. The 2.1.1 is good to compile mica, but not telos. </span></span><br />
<span style="color: #333333;"><span style="line-height: 19px;">So, we have to remove msp430 packages and install the old packages.</span></span><br />
<span style="color: #333333;"><span style="line-height: 19px;"><br /></span></span><br />
<span style="color: #333333;"><span style="line-height: 19px;">remove msp430</span></span><br />
<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); line-height: 1.1em; padding: 1em;">sudo apt-get autoremove --purge msp430-tinyos
sudo apt-get autoremove --purge msp430-gcc-tinyos</pre>
<br />
download old packages from <a href="http://tinyos.stanford.edu/tinyos/dists/ubuntu.old/pool/main/m/">here</a>:<br />
double click them in the following order:<br />
tinyos-base<br />
binutils-tinyos<br />
gcc-tinyos<br />
libc-tinyos<br />
tinyos<br />
optional-tinyos<br />
<br />
or you can use the following commands(all for 32 bits):<br />
<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); padding: 1em;">sudo dpkg -i msp430-tinyos-base_2.1-20080806_all.deb
sudo dpkg -i msp430-binutils-tinyos_2.17-20080806_i386.deb
sudo dpkg -i msp430-gcc-tinyos_3.2.3-20080806_i386.deb
sudo dpkg -i msp430-libc-tinyos_20060801cvs-20080806_i386.deb
sudo dpkg -i msp430-tinyos_2.1-20080806_all.deb
sudo dpkg -i msp430-optional-tinyos_2.1-20090326_all.deb</pre>
<br />
<br />
Now, you can compile the packages successfully.<br />
<br />
Well, when you trying to move the program to the chips, you may run the following command:<br />
<br />
<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); line-height: 1.1em; padding: 1em;">make telosb reinstall bsl,DEVICE</pre>
<br />
where DEVICE is the USB Device path provided from motelist command. example: make telosb reinstall bsl,/dev/ttyUSB0
<br />
you may still get errors. mainly because of the permission to access the Device. what you can do is to add the user to the group tty
<br />
<br />
<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); line-height: 1.1em; padding: 1em;">sudo gpasswd -a username tty</pre>
<br />
<br />
and then give the user the permission to access to the Device<br />
<br />
<pre style="background-color: #f9f9f9; border: 1px dashed rgb(47, 111, 171); line-height: 1.1em; padding: 1em;">sudo chmod 666 /dev/ttyUSB0</pre>
<br />
if your Device is ttyUSB0<br />
<br />
Now you can find your program copy to the chip.XuBloghttp://www.blogger.com/profile/03402989681995652657noreply@blogger.com0tag:blogger.com,1999:blog-5362810068983724996.post-73437608169284365282011-10-23T15:39:00.001-07:002011-10-23T15:39:11.054-07:00placement new<br />
<div class="posting" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;">
1. What is placement new? placement <b><i>new</i></b> is a overriding version of operator <b><i>new</i></b> which I mentioned in my last tips. The placement<b><i>new</i></b> can make it possible to "new" a object on the existing memory. For example, you have a block of memory in your code, which you want to "new" a object on it. You can use placement <b><i>new</i></b>.<div>
<br /></div>
<div>
<div>
<pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; word-wrap: break-word;"><pre><span class="Apple-style-span" style="font-family: verdana, 'trebuchet ms', arial, helvetica, sans-serif; font-size: medium;">char* pool=new char[sizeof(Bob)]; //initialize a block of memory</span><pre style="color: #555555; font-family: arial, verdana, helvetica, sans-serif; font-size: 16px;"><span class="Apple-style-span" style="font-family: verdana, 'trebuchet ms', arial, helvetica, sans-serif;"></span></pre>
</pre>
<pre><span class="Apple-style-span" style="font-family: verdana, 'trebuchet ms', arial, helvetica, sans-serif; font-size: medium;">Bob* bob2=new(pool)Bob(2); //"new" a Bob in the pool</span></pre>
<div style="color: #555555; font-family: arial, verdana, helvetica, sans-serif; font-size: 16px;">
<span class="Apple-style-span" style="font-family: verdana, 'trebuchet ms', arial, helvetica, sans-serif;">
</span></div>
</pre>
</div>
</div>
You can either "new" Bob on stack or on heap. The example is on the heap.<div>
In fact, the placement new is the step 2 of <b><i>new</i></b> operator which I mentioned in my last tips. It just invokes the constructor. Since you cannot invoke the constructor explicitly, you can use placement operator instead. </div>
<div>
<br /></div>
<div>
2. The problem now is how to release these memory.</div>
<div>
I found some materials on the internet which confused me a lot. So I did a sample program myself.</div>
<div>
<br /></div>
<div>
<pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; word-wrap: break-word;"><pre><span class="Apple-style-span" style="font-family: verdana, 'trebuchet ms', arial, helvetica, sans-serif; font-size: medium;">#include<iostream>
#include<new>
using namespace std;
class Bob{
int index;
char buffer[7];
public:
Bob(int i){
index=i;
buffer[0]='I';
buffer[1]=' ';
buffer[2]='a';
buffer[3]='m';
buffer[4]=' ';
buffer[5]='0'+(char)index;
buffer[6]='\0';
cout<<"Bob"<<index<<" is born in constructor"<<endl;
}
void Say(){
cout<<buffer<<endl;
}
~Bob(){
cout<<"Bob"<<index<<" died in destructor"<<endl;
}
};
void test(){
char* pool=new char[sizeof(Bob)]; //on heap
Bob bob1(1); //on stack
bob1.Say();
Bob* bob2=new(pool)Bob(2);
bob2->Say();
Bob* bob3=new(&bob1)Bob(3);
bob3->Say();
/*
delete bob2;
*/
//instead of delete bob2 you can also do the following
bob2->~Bob();
delete[] pool;
//we usaully do the later because placement is usaully used to
//manage the memory, which means we can declare a block of
//memory from heap in advance, than manage it, when the program
//is done, we delete the memory.
//the stuff in the stack will be released automatically
//(including destructor)
}
void main(){
test();
char a;
a=getchar();
}</span></pre>
</pre>
</div>
<div>
<br /></div>
<div>
So </div>
<div>
(1).if the memory is on the heap, we usually invoke the destructor explicitly and then delete the block of memory. This is probably the only situation that need to invoke destructor explicitly.</div>
<div>
(2).if the memory is on the stack, let it go. It will invoke your destructor automatically. </div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Summary:</div>
<div>
This is a good way to manage your memory. Just declare a block of memory, do what you want on it, then delete it.</div>
<div>
<br /></div>
</div>XuBloghttp://www.blogger.com/profile/03402989681995652657noreply@blogger.com0tag:blogger.com,1999:blog-5362810068983724996.post-8317539557102968232011-10-23T15:38:00.001-07:002011-10-23T15:38:28.749-07:00operator new and new operator and overloading<br />
<div class="posting" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;">
1. new and delete are very complex, it is worth to do some research on it.<div>
first thing I want to mention is about operator <b><i>new</i></b> and <b><i>new</i></b> operator. </div>
<div>
<i><b>new</b> </i>operator is a keyword in the C++ just like <b><i>sizeof</i></b>, you can do nothing on it(you cannot try to change them). In fact, when you write the expression<br /><span class="Apple-style-span" style="color: #555555; font-size: 16px; white-space: pre-wrap;"><pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; word-wrap: break-word;"><span class="Apple-style-span" style="font-family: courier, monospace;"><b><span class="Apple-style-span" style="color: black; font-family: verdana, 'trebuchet ms', arial, helvetica, sans-serif; font-size: small; font-weight: normal; white-space: normal;">Bob* bob=new Bob();</span></b></span></pre>
</span></div>
C++ do 3 steps for you.<div>
First, they allocate a block of memory for you(actually, you will find that this step is invoke the function <b><i>new operator</i></b>) , then invoke the constructor, finally, they return you a pointer. </div>
<div>
<br /></div>
<div>
We cannot change the whole operator <b style="font-style: italic;">new</b>, but we can do something for each step.</div>
<div>
<br /></div>
<div>
for first step, you can overload the <i style="font-weight: bold;">new operator</i>, this is an operator just like <b><i>+ operator</i></b>,you can overload this operator.</div>
<div>
So you can do this in your code:</div>
<div>
<span class="Apple-style-span" style="color: #555555; font-size: 16px; white-space: pre-wrap;"><pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; word-wrap: break-word;"><span class="Apple-style-span" style="font-family: courier, monospace;"><b><span class="Apple-style-span" style="color: black; font-family: verdana, 'trebuchet ms', arial, helvetica, sans-serif; font-size: small; font-weight: normal; white-space: normal;">void *operator new(size_t size);
//this is most basic overloading for new operator, placement new
//and something else will come soon in next tips</span></b></span></pre>
</span></div>
<div>
for the second step you can override you constructor.</div>
<div>
<br /></div>
<div>
third step is nothing but return a pointer. </div>
<div>
<br /></div>
<div>
2.<b><i>Delete operator</i></b> also does the similar things. But the destructor is invoked before the <b><i>delete operator</i></b>. One thing you should never forget, if you overload the new operator, please never forget your <b><i>delete operator</i></b>! because who knows what you did in your <b style="font-style: italic;">new operator</b>.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
let's look some codes here to know what happened.</div>
<div>
<br /></div>
<div>
<pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; word-wrap: break-word;"><span class="Apple-style-span" style="font-family: verdana, 'trebuchet ms', arial, helvetica, sans-serif;"><span class="Apple-style-span" style="white-space: normal;"></span></span><pre><span class="Apple-style-span" style="font-family: verdana, 'trebuchet ms', arial, helvetica, sans-serif;">#include<iostream>
using namespace std;
class Bob{
int a;
int c;
public:
Bob(int a_,int c_){
a=a_;
c=c_;
cout<<"Bob constructor"<<endl;
}
void *operator new(size_t size){
void* p=malloc(size);
cout<<"Bob new"<<endl;
return p;
}
void operator delete(void* ptr){
free(ptr);
cout<<"Bob died in delete"<<endl;
}
~Bob(){
cout<<"Bob is killed in destructor"<<endl;
}
};
void main(int argc,char* arg[]){
Bob* bob=new Bob(1,2);
delete bob;
char a;
a=getchar();
}</span><pre><span class="Apple-style-span" style="font-family: verdana, 'trebuchet ms', arial, helvetica, sans-serif;"></span></pre>
</pre>
</pre>
</div>
result:<div>
<br /></div>
<div>
<span class="Apple-style-span" style="color: #555555; font-size: 16px; white-space: pre-wrap;"><pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; word-wrap: break-word;"><b><i><span class="Apple-style-span" style="font-family: courier, monospace;"><span class="Apple-style-span" style="color: black; font-family: verdana, 'trebuchet ms', arial, helvetica, sans-serif; font-size: small; white-space: normal;"></span></span><pre><span class="Apple-style-span" style="font-family: courier, monospace;">Bob new</span></pre>
<pre><span class="Apple-style-span" style="font-family: courier, monospace;">Bob constructor</span></pre>
<pre><span class="Apple-style-span" style="font-family: courier, monospace;">Bob is killed in destructor</span></pre>
<pre><span class="Apple-style-span" style="font-family: courier, monospace;">Bob died in delete</span></pre>
<div>
<span class="Apple-style-span" style="font-family: courier, monospace;">
</span></div>
</i></b></pre>
</span></div>
</div>XuBloghttp://www.blogger.com/profile/03402989681995652657noreply@blogger.com0tag:blogger.com,1999:blog-5362810068983724996.post-12544367637765925362011-09-24T13:14:00.000-07:002011-09-24T13:14:50.102-07:00转 C++结构体实例和类实例的初始化<br />
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">结</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">构体</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">实</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">例(包括共用体)和</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">类实</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">例的初始化方法完全相同,二者都可以</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">应</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">用于</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">继</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">承</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">层</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">次中。不同点是</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">结</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">构体(包括共用体)默</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">认</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">成</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">员为</span><span lang="EN-US" style="color: blue; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">public</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,而</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">类</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">默</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">认</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">成</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">员</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">是</span><span lang="EN-US" style="color: blue; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">private</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">型的。</span><span lang="EN-US" style="color: blue; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<br /></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">一、若类和结构体所有数据成</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">员</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">均</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">为</span><span lang="EN-US" style="color: blue; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">public</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">型,可采取如下</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">带</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">花括号形式进行初始化。</span><span lang="EN-US" style="color: blue; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="color: blue; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span></span><span lang="ZH-CN" style="color: red; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">注意:</span><span lang="EN-US" style="color: red; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 42pt; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: -21pt;">
<span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">①<span style="font: normal normal normal 7pt/normal 'Times New Roman'; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span></span></span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">不</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">论值</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">的个数多少,都必</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">须</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">使用花括号定界</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 42pt; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: -21pt;">
<span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">②<span style="font: normal normal normal 7pt/normal 'Times New Roman'; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span></span></span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">未指定</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">值</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">的数据成</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">员编译</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">器会自</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">动</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">初始化</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">为</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">默</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">认值</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 42pt; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: -21pt;">
<span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">③<span style="font: normal normal normal 7pt/normal 'Times New Roman'; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span></span></span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">这种</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">初始化</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">对</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">象方式,要求所有数据成</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">员</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">必</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">须为</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">public</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">型</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 42pt; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: -21pt;">
<span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">④<span style="font: normal normal normal 7pt/normal 'Times New Roman'; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span></span></span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">这种</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">初始化</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">对</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">象方式,要求</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">类</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">中不能</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">编</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">写任何构造函数</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<br /></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">struct S {<span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="color: #339966; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">//class S </span></span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">效果一样</span><span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>int <span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>x;</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>unsigned short y;</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">};</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">S testS1={100,123};</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">S testS2={200};//</span><span lang="ZH-CN" style="font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">未指定</span><span lang="ZH-CN" style="font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">值</span><span lang="ZH-CN" style="font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">的数据成</span><span lang="ZH-CN" style="font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">员</span><span lang="ZH-CN" style="font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">初始化</span><span lang="ZH-CN" style="font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">为</span><span lang="ZH-CN" style="font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">默</span><span lang="ZH-CN" style="font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">认值</span><span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,</span><span lang="ZH-CN" style="font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">这</span><span lang="ZH-CN" style="font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">里</span><span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">os2.y=0;</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">S TestS[4]={ {100,10},</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>{200,20},</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>{300} };<span style="color: #339966; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">//</span></span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">未指定</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">值</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">的初始化</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">为</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">默</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">认值</span><span lang="EN-US" style="color: #339966; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,os[2].y,os[3].x,os[3].y</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">。</span><span lang="EN-US" style="color: #339966; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<br /></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">二、若数据成</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">员</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">有</span><span lang="EN-US" style="color: blue; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">private</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">或</span><span lang="EN-US" style="color: blue; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">protected</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">型,或是提供了构造函数,必</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">须</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">使用构造函数来</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">进</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">行初始化。</span><span lang="EN-US" style="color: blue; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<br /></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">struct S { <span style="color: #339966; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">//class S</span></span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">可自行</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">试验</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">结</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">果相同</span><span lang="EN-US" style="color: #339966; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>private:</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>int x;</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>public:</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>double y;</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>S(void){}</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>S(int idemo,double ddemo) {x=idemo;y=ddemo;}</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>void show(void) {cout<<x<<''/t''<<y<<endl;}</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">};</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">S os1;<span style="color: #339966; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">//</span></span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">将</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">调</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">用</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">默</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">认</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">构造函数</span><span lang="EN-US" style="color: #339966; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">(</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">无参构造函数</span><span lang="EN-US" style="color: #339966; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">)</span><span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">S os2(1000,2.345);</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">S os3=S(2000,4.567);</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">S os[4]={S(10,1.234),S(20,2.234)};<span style="color: #339966; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">//</span></span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">未初始化的将</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">调</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">用默</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">认</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">构造函数。如此</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">时</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">没有默</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">认</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">构造函数会出</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">错</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">。</span><span lang="EN-US" style="color: #339966; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<br /></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="ZH-CN" style="color: red; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">重要提示</span><span lang="EN-US" style="color: red; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">:</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 21pt; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: -21pt;">
<span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">①<span style="font: normal normal normal 7pt/normal 'Times New Roman'; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span></span></span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">在</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">S os3=S(2000,4.567);</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">语</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">句中,因是声明并初始化</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">os3</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">对</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">象,所以将</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">调</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">用</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">S(int,double)</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">构造函数</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">对</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">os3</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">进</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">行初始化。</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 21pt; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: -21pt;">
<span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">②<span style="font: normal normal normal 7pt/normal 'Times New Roman'; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span></span></span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">S os3(2000,4.567); </span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">等价于</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> S os3=S(2000,4.567);</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 21pt; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: -21pt;">
<span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">③<span style="font: normal normal normal 7pt/normal 'Times New Roman'; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span></span></span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">但如果</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">os3</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">已</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">经</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">存在了,</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">S os3(100,1.234);os3=S(2000,4.567)</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">则</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">表示用一个</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">临时对</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">象</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">赋值给</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">os3</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,将</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">调</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">用</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">operator=</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,然后系</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">统</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">再</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">释</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">放</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">这</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">个</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">临时产</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">生的</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">对</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">象。系</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">统</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">默</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">认</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">的</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">=</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">运算是将源</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">对</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">象的数据成</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">员</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">的</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">值复</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">制到目</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">标对</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">象中的数据成</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">员</span><span lang="ZH-CN" style="color: magenta; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">中。</span><span lang="EN-US" style="color: magenta; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<br /></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">三、接受一个参数的构造函数允</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">许</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">使用</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">赋值</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">句法初始化</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">对</span><span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">象。</span><span lang="EN-US" style="color: blue; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="ZH-CN" style="color: blue; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">说明代码如下:</span><span lang="EN-US" style="color: blue; font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<br /></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">#include <iostream></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">using namespace std;</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">class C {</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>private:</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>int x;</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>public:</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>C(int idemo) {x=idemo;}</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>void show(void) {cout<<x<<endl;}</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">};</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">struct S {</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>private:</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>int x;</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>public:</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>S(int idemo) {x=idemo;}</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>void show(void) {cout<<x<<endl;}</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">};</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">int main(int argc, char *argv[]){</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>C oc=1000;<span style="color: #339966; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">//</span></span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">不能企</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">图</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">加花括号</span><span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>oc.show();</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>S os=2000;<span style="color: #339966; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">//</span></span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">不能企</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">图</span><span lang="ZH-CN" style="color: #339966; font-family: SimSun; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">加花括号</span><span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>os.show();</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span>return EXIT_SUCCESS;</span></div>
<div class="MsoNormal" style="font-family: Arial; font-size: 14px; line-height: 26px; margin-bottom: 0pt; margin-left: 0mm; margin-right: 0mm; margin-top: 0mm; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span lang="EN-US" style="font-family: Tahoma; font-size: 9pt; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">}</span></div>
XuBloghttp://www.blogger.com/profile/03402989681995652657noreply@blogger.com0tag:blogger.com,1999:blog-5362810068983724996.post-76427124516228573672011-09-12T16:25:00.000-07:002011-09-12T16:25:10.961-07:00apache2 php 安装在ubuntu上安装apache2 和PHP5<br />
<br />
如果是ubuntu 11.04 先装一下taskel<br />
<br />
<span class="Apple-style-span" style="background-color: white; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 14px;"><strong></strong></span><br />
<pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; font-family: courier, monospace; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; white-space: pre-wrap; word-wrap: break-word;"><strong>sudo apt-get install tasksel</strong></pre>
<br />
<span class="Apple-style-span" style="background-color: white; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 14px;"><strong></strong></span><br />
<pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; font-family: courier, monospace; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; white-space: pre-wrap; word-wrap: break-word;"><strong>sudo tasksel install lamp-server</strong></pre>
<br />
然后<br />
<span class="Apple-style-span" style="background-color: white; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 14px;"><strong></strong></span><br />
<pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; font-family: courier, monospace; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; white-space: pre-wrap; word-wrap: break-word;"><strong>sudo apt-get install apache2</strong></pre>
<br />
<span class="Apple-style-span" style="background-color: white; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 14px;"><strong></strong></span><br />
<pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; font-family: courier, monospace; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; white-space: pre-wrap; word-wrap: break-word;"><strong>sudo /etc/init.d/apache2 restart</strong></pre>
<br />
如果出现了Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName 这种状况
那么
<br />
<span class="Apple-style-span" style="background-color: white; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 14px;"><strong></strong></span><br />
<pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; font-family: courier, monospace; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; white-space: pre-wrap; word-wrap: break-word;"><strong>echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn</strong></pre>
<br />
建立一个新的site:
<br />
<br />
<span class="Apple-style-span" style="background-color: white; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 14px;"><strong></strong></span><br />
<div class="line862">
<strong>Apache2 has the concept of sites, which are separate configuration files that Apache2 will read. These are available in<tt>/etc/apache2/sites-available</tt>. By default, there is one site available called <em>default</em> this is what you will see when you browse to <a class="http" href="http://localhost/" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #d90d19;">http://localhost</a> or <a class="http" href="http://127.0.0.1/" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #d90d19;">http://127.0.0.1</a>. You can have many different site configurations available, and activate only those that you need.<span class="anchor" id="line-100"></span><span class="anchor" id="line-101"></span><span class="anchor" id="line-102"></span></strong></div>
<div class="line862">
<strong>As an example, we want the default site to be <tt>/home/user/public_html/</tt>. To do this, we must create a new site and then enable it in Apache2.<span class="anchor" id="line-103"></span><span class="anchor" id="line-104"></span></strong></div>
<div class="line874">
<strong>To create a new site:<span class="anchor" id="line-105"></span><span class="anchor" id="line-106"></span></strong></div>
<ul>
<li><div class="line862" style="margin-bottom: 0.25em; margin-top: 0.25em;">
<strong>Copy the default website as a starting point. <tt>sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mysite </tt><span class="anchor" id="line-107"></span></strong></div>
</li>
<li><div class="line862" style="margin-bottom: 0.25em; margin-top: 0.25em;">
<strong>Edit the new configuration file in a text editor "sudo nano" on the command line or "gksudo gedit", for example: <tt>gksudo gedit /etc/apache2/sites-available/mysite</tt><span class="anchor" id="line-108"></span></strong></div>
</li>
<li><div class="line862" style="margin-bottom: 0.25em; margin-top: 0.25em;">
<strong>Change the <tt>DocumentRoot</tt> to point to the new location. For example, <tt>/home/user/public_html/</tt><span class="anchor" id="line-109"></span></strong></div>
</li>
<li><div class="line862" style="margin-bottom: 0.25em; margin-top: 0.25em;">
<strong>Change the <tt>Directory</tt> directive, replace <tt><Directory /var/www/></tt> to <tt><Directory /home/user/public_html/></tt><span class="anchor" id="line-110"></span></strong></div>
</li>
<li><div class="line891" style="margin-bottom: 0.25em; margin-top: 0.25em;">
<strong><em>You can also set separate logs for each site. To do this, change the <tt>ErrorLog</tt> and <tt>CustomLog</tt> directives. This is optional, but handy if you have many sites</em><span class="anchor" id="line-111"></span></strong></div>
</li>
<li><strong>Save the file<span class="anchor" id="line-112"></span><span class="anchor" id="line-113"></span></strong></li>
</ul>
<div class="line862">
<strong>Now, we must deactivate the old site, and activate our new one. Ubuntu provides two small utilities that take care of this: a2ensite (</strong>a<strong>pache</strong>2en<strong>able </strong>site<strong>) and a2dissite (</strong>a<strong>pache</strong>2dis<strong>able </strong>site<strong>).<span class="anchor" id="line-114"></span><span class="anchor" id="line-115"></span></strong></div>
<div class="line867">
<strong><span class="anchor" id="line-116"></span><span class="anchor" id="line-117"></span></strong></div>
<pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; font-family: courier, monospace; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; white-space: pre-wrap; word-wrap: break-word;"><strong><span class="anchor" id="line-1-10"></span>sudo a2dissite default && sudo a2ensite mysite</strong></pre>
<strong><span class="anchor" id="line-118"></span><span class="anchor" id="line-119"></span></strong><br />
<div class="line874">
<strong>Finally, we restart Apache2:<span class="anchor" id="line-120"></span><span class="anchor" id="line-121"></span></strong></div>
<strong>
<div class="line867">
<span class="anchor" id="line-122"></span><span class="anchor" id="line-123"></span></div>
<pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; font-family: courier, monospace; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; white-space: pre-wrap; word-wrap: break-word;"><span class="anchor" id="line-1-11"></span>sudo /etc/init.d/apache2 restart</pre>
<span class="anchor" id="line-124"></span><span class="anchor" id="line-125"></span><div class="line867">
<em>If you have not created <tt>/home/user/public_html/</tt>, you will receive an warning message</em><span class="anchor" id="line-126"></span><span class="anchor" id="line-127"></span></div>
<div class="line862">
To test the new site, create a file in <tt>/home/user/public_html/</tt>:<span class="anchor" id="line-128"></span><span class="anchor" id="line-129"></span></div>
<div class="line867">
<span class="anchor" id="line-130"></span><span class="anchor" id="line-131"></span></div>
<pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; font-family: courier, monospace; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; white-space: pre-wrap; word-wrap: break-word;"><span class="anchor" id="line-1-12"></span>echo '<b>Hello! It is working!</b>' > /home/user/public_html/index.html</pre>
<span class="anchor" id="line-132"></span><span class="anchor" id="line-133"></span><div class="line862">
Finally, browse to <a class="http" href="http://localhost/" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #d90d19;">http://localhost/</a></div>
<div class="line862">
<br /></div>
<div class="line862">
<br /></div>
<div class="line862">
<br /></div>
<div class="line862">
<br /></div>
</strong>
安装PHP5
<span class="Apple-style-span" style="background-color: white; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 14px;"><strong></strong></span><br />
<pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; font-family: courier, monospace; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; white-space: pre-wrap; word-wrap: break-word;"><strong>sudo apt-get install libapache2-mod-php5</strong></pre>
<br />
<span class="Apple-style-span" style="background-color: white; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 14px;"><strong></strong></span><br />
<pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; font-family: courier, monospace; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; white-space: pre-wrap; word-wrap: break-word;"><strong>sudo a2enmod php5</strong></pre>
<br />
<br />
<span class="Apple-style-span" style="background-color: white; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 14px;"></span><br />
<pre style="background-color: #f0eee6; border-bottom-color: rgb(193, 180, 150); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(193, 180, 150); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(193, 180, 150); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(193, 180, 150); border-top-style: dashed; border-top-width: 1px; font-family: courier, monospace; padding-bottom: 4pt; padding-left: 4pt; padding-right: 4pt; padding-top: 4pt; white-space: pre-wrap; word-wrap: break-word;"><strong>sudo service apache2 restart</strong></pre>
<br />
<br />XuBloghttp://www.blogger.com/profile/03402989681995652657noreply@blogger.com0tag:blogger.com,1999:blog-5362810068983724996.post-25648410554789742332011-09-10T11:04:00.001-07:002011-09-10T11:04:40.142-07:00Copy constructor and assignment operator<br />
<h1>
<a href="" name="SECTION00040000000000000000">Copy constructor and assignment operator</a></h1>
In C++, objects can be copied by assignment or by initialisation. Copying by initialisation corresponds to creating an object and initialising its value through the copy constructor. The copy constructor has its first argument as a reference, or const reference to the object's class type. It can have more arguments, if default values are provided. Copying by assignment applies to an existing object and is performed through the assignment operator (=). The copy constructor implements this for identical type objects:<pre>class MyObject {
public:
MyObject(); // Default constructor
MyObject(MyObject const & a); // Copy constructor
MyObject & operator = (MyObject const & a) // Assignment operator
}
</pre>
The copy constructors play an important role, as they are called when class objects are passed by value, returned by value, or thrown as an exception.<pre>// A function declaration with an argument of type MyObject,
// passed by value, and returning a MyObject
MyObject f(MyObject x)
{
MyObject r;
...
return(r); // Copy constructor is called here
}
// Calling the function :
MyObject a;
f(a); // Copy constructor called for a
</pre>
It should be noted that the C++ syntax is ambiguous for the assignment operator. <tt>MyObject x; x=y; </tt>and <tt>MyObject x=y;</tt> have different meaning.<pre>MyObject a; // default constructor call
MyObject b(a); // copy constructor call
MyObject bb = a; // identical to bb(a) : copy constructor call
MyObject c; // default constructor call
c = a; // assignment operator call</pre>
XuBloghttp://www.blogger.com/profile/03402989681995652657noreply@blogger.com0tag:blogger.com,1999:blog-5362810068983724996.post-68138133997001183752011-09-10T09:26:00.001-07:002011-09-10T09:26:25.556-07:00assert from 百度百科<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"><b>宏名: assert</b></span><br />
<div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 功 能: 测试一个条件并可能使程序终止</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 用 法: void assert(int test);</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 程序例:</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> #include <</span><span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"><a href="http://baike.baidu.com/view/2819422.htm" style="color: #136ec2; text-decoration: underline;" target="_blank">assert.h</a></span><span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;">></span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> #include <stdio.h></span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> #include <stdlib.h></span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> struct ITEM {</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> int key;</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> int value;</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> };</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> /* add item to list, make sure list is not null */</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> void additem(struct ITEM *itemptr) {</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> assert(itemptr != NULL);</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> /* add item to list */</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> }</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> int main(void)</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> {</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> additem(NULL);</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> return 0;</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> }</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> </span><span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"><b>assert() 宏用法</b></span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> #include <assert.h></span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> void assert( int expression );</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> assert的作用是先计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 然后通过调用 abort 来终止程序运行。</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 请看下面的程序清单badptr.c:</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> #include <stdio.h></span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> #include <assert.h></span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> #include <stdlib.h></span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> int main( void )</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> {</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> FILE *fp;</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> fp = fopen( "test.txt", "w" );//以可写的方式打开一个文件,如果不存在就创建一个同名文件</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> assert( fp ); //所以这里不会出错</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> fclose( fp );</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> fp = fopen( "noexitfile.txt", "r" );//以只读的方式打开一个文件,如果不存在就打开文件失败</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> assert( fp ); //所以这里出错</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> fclose( fp ); //程序永远都执行不到这里来</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> return 0;</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> }</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> [root@localhost error_process]# gcc badptr.c</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> [root@localhost error_process]# ./a.out</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> a.out: badptr.c:14: main: Assertion `fp' failed.</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 已放弃</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 在调试结束后,可以通过在包含#include <assert.h>的语句之前插入 #define NDEBUG 来禁用assert调用,示例代码如下:</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> #include <stdio.h></span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> #define NDEBUG</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> #include <assert.h></span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 用法总结与注意事项:</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 1)在函数开始处检验传入参数的合法性</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 如:</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> int resetBufferSize(int nNewSize)</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> {</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> //功能:改变</span><span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"><a href="http://baike.baidu.com/view/266782.htm" style="color: #136ec2; text-decoration: underline;" target="_blank">缓冲区</a></span><span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;">大小,</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> //参数:nNewSize 缓冲区新长度</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> //返回值:缓冲区当前长度</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> //说明:保持原信息内容不变 nNewSize<=0表示清除缓冲区</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> assert(nNewSize >= 0);</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> assert(nNewSize <= MAX_BUFFER_SIZE);</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> ...</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> }</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 2)每个assert只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 不好: assert(nOffset>=0 && nOffset+nSize<=m_nInfomationSize);</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 好: assert(nOffset >= 0);</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> assert(nOffset+nSize <= m_nInfomationSize);</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 3)不能使用改变环境的语句,因为assert只在DEBUG个生效,如果这么做,会使用程序在真正运行时遇到问题</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 错误: assert(i++ < 100)</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 这是因为如果出错,比如在执行之前i=100,那么这条语句就不会执行,那么i++这条命令就没有执行。</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 正确: assert(i < 100)</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> i++;</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 4)assert和后面的语句应空一行,以形成逻辑和视觉上的一致感</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 5)有的地方,assert不能代替条件过滤</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> </span><span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"><b>注意</b></span><span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;">:当对于浮点数:</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> #include<assert.h></span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> // float pi=3.14;</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> // assert(pi=3.14); //</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> float pi=3.14</span><span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"><b>f</b></span><span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;">;</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> assert (pi=3.14</span><span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"><b>f</b></span><span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;">);</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> ---------------------------------------------------------</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> 在switch语句中总是要有default子句来显示信息(Assert)。</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> int number = SomeMethod();</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> switch(number)</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> {</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> case 1:</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> Trace.WriteLine("Case 1:");</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> break;</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> case 2:</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> Trace.WriteLine("Case 2:");</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> break;</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> default :</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> Debug.Assert(false);</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> break;</span><div class="spctrl" style="font-family: arial, 宋体, sans-serif; font-size: 12px; height: 14px; line-height: 14px; overflow-x: hidden; overflow-y: hidden;">
</div>
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px;"> }</span>XuBloghttp://www.blogger.com/profile/03402989681995652657noreply@blogger.com0tag:blogger.com,1999:blog-5362810068983724996.post-82659082616987056402011-09-10T09:15:00.000-07:002011-09-10T09:15:55.405-07:00dynamic memory exceptionWeekly tips collect by CS435 classmates:<br />
by Dylan Sawyer<br />
<span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;">(1) When the normal</span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"> </span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><span style="font-style: italic;">new</span></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"> </span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;">operator is used to create something (this whole</span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"> </span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><span style="font-style: italic;">new</span></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"> </span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;">thing is the cue, the keyword, for</span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"> </span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><span style="font-style: italic;">dynamic memory</span></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;">), if that something that is in the process of being created does not have enough memory available, then it throws an exception. This is typically bad, as it will, in most cases, cause an abrupt termination of your program (leaving the user with a bitter aftertaste of disgust, or rage if said user is the programmer). Of course, handling such possibilities must be done to keep things running smoothly.</span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;">(2) If you don't want to deal with that kind of thing, then there is another possibility: nothrow. When writing a statement involving</span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"> </span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><span style="font-style: italic;">new</span></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><span style="font-style: italic;"><br />dude = new thing</span></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;">it could instead be written as</span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><span style="font-style: italic;"></span></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><span style="font-style: italic;"><br />dude = new (nothrow) thing</span></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;">This will cause the pointer (dude in this case) to point to</span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"> </span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><span style="font-style: italic;">null</span></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"> </span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;">if there is a lack of memory available. This is another alternative to throwing exceptions (using a keyword called nothrow... go figure). This delays the aftertaste a little.</span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;">Fountain of C++ Knowledge: http://www.cplusplus.com/doc/tutorial/dynamic/</span><br />
<span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><br />
<span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><br />
<span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><br />
<span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><br />
<span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;">reply by Gordie:</span><br />
<span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><br />
<span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;"><br /></span><br />
<span class="Apple-style-span" style="color: #555555; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px;">The whole memory allocation process is rather confusing, especially when the thing being created is an object and part of the "new"-ing process is a call to a constructor method that can also throw an exception because it tries to do something illegal.</span><br />
<div>
<br /></div>
<div>
A couple of lessons come from this:</div>
<div>
- do not do much in your constructors; instead, do safe things in your constructor and if you need to do dangerous things have another routine (Initialize() or something like that) that must be called after creation.</div>
<div>
- take a look at exceptions (try, catch, etc.) and wrap dangerous pieces of code that may cause memory errors.</div>
<div>
<br /></div>
<div>
A piece of advice that I have found very useful came from a rather expert driver developer at ATI. His quote was related directly to allocating memory and protecting against not having enough: "if we can't allocate that amount of memory we have bigger problems." Really, this just means that if ordinary allocations (relatively small) are going to fail then there is something else seriously wrong with the system--worry about the big allocations.</div>
XuBloghttp://www.blogger.com/profile/03402989681995652657noreply@blogger.com0