﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-学习日志-随笔分类-C++</title><link>http://www.cppblog.com/hwsqy/category/16539.html</link><description>好记性不如烂笔头</description><language>zh-cn</language><lastBuildDate>Wed, 13 Apr 2011 04:55:36 GMT</lastBuildDate><pubDate>Wed, 13 Apr 2011 04:55:36 GMT</pubDate><ttl>60</ttl><item><title>Essential C++读书笔记 -- 第一章</title><link>http://www.cppblog.com/hwsqy/archive/2011/04/11/143987.html</link><dc:creator>商庆永</dc:creator><author>商庆永</author><pubDate>Mon, 11 Apr 2011 15:27:00 GMT</pubDate><guid>http://www.cppblog.com/hwsqy/archive/2011/04/11/143987.html</guid><wfw:comment>http://www.cppblog.com/hwsqy/comments/143987.html</wfw:comment><comments>http://www.cppblog.com/hwsqy/archive/2011/04/11/143987.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hwsqy/comments/commentRss/143987.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hwsqy/services/trackbacks/143987.html</trackback:ping><description><![CDATA[

<p><br></p><p>1. 对象定义：</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>具有身份的事物就是对象。</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>你应该使用<span class="Apple-tab-span" style="white-space:pre">	</span>可数名词给对象命名。</p><p><span class="Apple-tab-span" style="white-space:pre">	</span></p><p>2. 记住对象身份：</p><p>#include &lt;iostream&gt;</p><p><br></p><p>using namespace std;</p><p><br></p><p>class World</p><p>{</p><p>public:</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>World() { cout &lt;&lt; "Hello World " &lt;&lt;endl; };</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>World(int id):identifier(id) { cout &lt;&lt; "Hello World " &lt;&lt; identifier &lt;&lt; endl; };</p><p>&nbsp;&nbsp; ~World() { cout &lt;&lt; "Bye World " &lt;&lt; identifier &lt;&lt; endl; };</p><p>&nbsp;&nbsp;&nbsp;</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>private:</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>int identifier;</p><p>};</p><p><br></p><p>int main()</p><p>{</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>World world1(1);</p><p><span class="Apple-tab-span" style="white-space:pre">	</span></p><p><span class="Apple-tab-span" style="white-space:pre">	</span>return 0;</p><p>}</p><p><br></p><p>3. 当某些类的数据成员为用户自定义类型时，它就叫嵌入对象。数据成员按照在类中定义的顺序进行初始化。</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>嵌入对象按照构建他们的相反的顺序销毁。嵌入表示has-a的关系。</p><p><span class="Apple-tab-span" style="white-space:pre">	</span></p><p>4. 一个对象构建的顺序是首先构建基类对象，然后构建派生类。</p><p><br></p><p>5. 对编译器不知道的类型使用指针和引用是可行的。这个时候编译器唯一需要的是类型的声明。</p><p><br></p><p><br></p><p>《阅读Essential C++》</p><p><br></p><p>1. 命名空间：</p><p>&nbsp;&nbsp; &nbsp;是一种将程序库名称封装起来的方法。</p><p>2. 提供boolean类型，关键字是bool。</p><p><br></p><p>3. 运算符优先级：</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>逻辑运算符 not</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>算数运算符 * / %</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>算数运算符 + -</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>相对关联运算符 &lt; &gt; &lt;= &gt;=</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>相对关联运算符 == !=</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>逻辑运算符 &amp;&amp;</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>逻辑运算符 ||</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>赋值运算符 =</p><p>4. vector的使用</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>int array[] = {1, 2, 3, 4, 5};</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>初始化： vector&lt;int&gt; my_vector( array, array + 5 );</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>或者 &nbsp; &nbsp; vector&lt;int&gt; my_vector(5);</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>my_vector[0] = 1;</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>my_vector[1] = 2;</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>my_vector[0] = 3;</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>my_vector[1] = 4;</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>my_vector[0] = 5;</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>vector&lt;int&gt; fibonacci, lucas, pell;</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>vector&lt;int&gt; *mv[3] = {</p><p><span class="Apple-tab-span" style="white-space:pre">	</span> &nbsp; &nbsp;&amp;fibonacci, &amp;lucas, &amp;pell</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>};</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>遍历： &nbsp; for (int i = 0; i &lt; my_vector.size(); i++)</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>vector类型的指针：vector&lt;int&gt; *pv = NULL;</p><p>5. 文件读写</p><p>&nbsp;&nbsp; &nbsp;#include &lt;fstream&gt;</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>写</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>ofstream outfile("data.txt"); &nbsp;覆盖打开，失败outfile = 0</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>ofstream outfile("data.txt", ios_base::app); &nbsp;追加模式打开,失败outfile = 0</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>读</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>ifstream infile("data.txt"); 读取文件</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>读写</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>fstream iofile("data.txt", ios_base::in|ios_base::app);</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>控制器</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>endl 插入一个换行字符，并清除输出缓冲区。</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>16进制显示( hex ) 8进制显示(oct) 设定浮点数显示精度(setprecision(n))</p><p><br></p><p>6. 作用域</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>对象在函数外声明，则具有所谓的文件域。文件域内的对象也具备所谓的静态域，意味着该对象的内存在main（）开始执行之前便已经配置好了，可以一直在程序结束为止。内建类型如果定义在文件域则必定被初始化为0，如果定义在本地，那么除非程序员指定，否则不会初始化。</p><p><span class="Apple-tab-span" style="white-space:pre">	</span></p><p>&#160;</p><img src ="http://www.cppblog.com/hwsqy/aggbug/143987.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hwsqy/" target="_blank">商庆永</a> 2011-04-11 23:27 <a href="http://www.cppblog.com/hwsqy/archive/2011/04/11/143987.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>