📄 00016_readme.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>readme</title>
<!--<link rel="stylesheet" href="/_css/flyingspace.css" type="text/css">-->
<style>
BODY {
COLOR: #333333; FONT-FAMILY: 宋体, Arial, Helvetica, sans-serif; FONT-SIZE: 14px
}
TD {
COLOR: #333333; FONT-FAMILY: 宋体, Arial, Helvetica, sans-serif; FONT-SIZE: 14px
}
.big {
FONT-SIZE: 14px
}
.large {
FONT-SIZE: 14px
}
.small {
FONT-SIZE: 10px
}
.left {
COLOR: #004080; FILTER: glow(color=#ffffff,strength=2); FONT-SIZE: 14px
}
A.white:link {
COLOR: #333333; FONT-SIZE: 14px; TEXT-DECORATION: none
}
A.white:visited {
COLOR: #333333; FONT-SIZE: 14px; TEXT-DECORATION: none
}
A.white:hover {
COLOR: #ff6600; FONT-SIZE: 14px; TEXT-DECORATION: none
}
A.white:active {
COLOR: #ff6600; FONT-SIZE: 14px; TEXT-DECORATION: none
}
A.sw:link {
COLOR: #333333; TEXT-DECORATION: none
}
A.sw:visited {
COLOR: #333333; TEXT-DECORATION: none
}
A.sw:hover {
COLOR: #ff6600; TEXT-DECORATION: none
}
A.sw:active {
COLOR: #ff6600; TEXT-DECORATION: none
}
A.left:link {
COLOR: #004080; TEXT-DECORATION: none
}
A.left:visited {
COLOR: #004080; TEXT-DECORATION: none
}
A.left:hover {
COLOR: #ff6600; TEXT-DECORATION: none
}
A.left:active {
COLOR: #ff6600; TEXT-DECORATION: none
}
A.phone:link {
COLOR: #21345e; TEXT-DECORATION: none
}
A.phone:visited {
COLOR: #21345e; TEXT-DECORATION: none
}
A.phone:hover {
COLOR: #ffffff; TEXT-DECORATION: none
}
A.phone:active {
COLOR: #ffffff; TEXT-DECORATION: none
}
A:link {
COLOR: #003399; TEXT-DECORATION: none
}
A:visited {
COLOR: #003399; TEXT-DECORATION: none
}
A:hover {
COLOR: #ff6600; TEXT-DECORATION: none
}
A:active {
COLOR: #ff6600; TEXT-DECORATION: none
}
TEXTAREA {
BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #547cbb 1px solid; BORDER-LEFT: #547cbb 1px solid; BORDER-RIGHT: #547cbb 1px solid; BORDER-TOP: #547cbb 1px solid; COLOR: #666666; FONT-FAMILY: "宋体", "Arial", "Helvetica", "sans-serif"; FONT-SIZE: 14px
}
</style>
</head>
<body topmargin="0" leftmargin="0">
<table width="100%" border="0" align="center" cellspacing="0">
<tr>
<td>
<table width="750" height="56" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="23%" rowspan="2"><div align="center"><img src="banner.gif" width="150" height="50"></div></td>
<td width="77%" height="26"><a name="pagetop" href="http://www.flyingspace.com">凌霄首页</a>
| <a href="http://www.flyingspace.com/news/news_index.html">凌霄动态</a>
| <a href="http://www.flyingspace.com/software/software_index.html">凌霄软件</a>
| <a href="http://www.flyingspace.com/problem/problem_index1.html">常见问题</a>
| <a href="http://www.flyingspace.com/service/service_index.html">服务列表</a>
| <a href="javascript:window.external.addFavorite('http://www.flyingspace.com','凌霄工作室网站')">收藏本站</a></td>
</tr>
<tr>
<td height="13"><a href="http://www.flyingspace.com/ebook/ebook_index.html">电子书籍</a>
| <a href="http://www.flyingspace.com/control/control_index.html">精品控件</a>
| <a href="http://www.flyingspace.com/code/code_index.html">经典源码</a>
| <a href="http://www.flyingspace.com/other/other_index.html">其它下载</a>
| <a href="http://www.flyingspace.com/shoufei/shoufei_index.html">资费标准</a>
| <a href="http://www.flyingspace.com/about/about_index.html">关于我们</a></td>
</tr>
<tr>
<td colspan="2"><hr align="center" size="2" color="red" noshade></td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<table width="750" border="0" align="center" cellspacing="0">
<tr>
<td>凌霄工作室-电子书籍之----</td>
</tr>
</table>
<table width="750" border="0" align="center" cellspacing="0">
<tr>
<td height="58" bgcolor="#eff3f7"> <blockquote>
<h1 align="center"><strong><font color="#FF0000"><br>
《从C到C++》</font></strong><br>
<br>
</h1>
</blockquote></td>
</tr>
</table>
<table width="750" border="0" align="center" cellspacing="0">
<tr>
<td bgcolor="#eff3f7"> <blockquote>
<p> </p>
<blockquote>
<blockquote>
<p><a href="#about"><strong>关于本书</strong></a></p>
<p><strong><a href="#jianjie">简介</a></strong></p>
<p><strong><a href="#content">目录</a></strong></p>
<p><strong><a href="#password">如何获得密码</a></strong></p>
<p><strong><a href="#about">资费标准</a></strong></p>
<p><strong><a href="#buy">怎样付款</a></strong></p>
<p><strong><a href="#other">相关信息</a></strong></p>
<p><strong><a href="#help">联系我们</a></strong></p>
<p><strong><a href="#declaration">声明</a></strong></p>
</blockquote>
</blockquote>
<p><br>
</p>
</blockquote></td>
</tr>
</table>
<table width="750" border="0" align="center" cellspacing="0">
<tr>
<td height="19" bgcolor="#CCCCCC"> <p name="about"><a name="about"><strong>关于本书</strong></a></p></td>
</tr>
<tr>
<td height="58" bgcolor="#eff3f7"> <blockquote>
<p><font color="#0000FF"><br>
</font>格 式:pdf<br>
作 者:(不详)<br>
语 言:简体中文<br>
阅读器:方正阅读器<br>
<br>
</p>
</blockquote></td>
</tr>
<tr>
<td bgcolor="#eff3f7">
<div align="right"><a href="#pagetop">>>>回页首</a></div></td>
</tr>
</table>
<table width="750" border="0" align="center" cellspacing="0">
<tr>
<td bgcolor="#CCCCCC"><p name="jianjie"><a name="jianjie"><strong>简介</strong></a></p></td>
</tr>
<tr>
<td bgcolor="#eff3f7"><blockquote>
<p> 对每个人来说,习惯C++需要一些时间,对于已经熟悉C 的程序员来说, 这个过程尤其令人苦恼。因为C 是C++的子集,所有的C 的技术都可以继续使
用,但很多用起来又不太合适。例如,C++程序员会认为指针的指针看起来很古怪,他们会问:为什么不用指针的引用来代替呢? C 是一种简单的语言。它真正提供的只有有宏、指针、结构、数组和函数。
不管什么问题,C 都靠宏、指针、结构、数组和函数来解决。而C++不是这样。<br>
宏、指针、结构、数组和函数当然还存在,此外还有私有和保护型成员、函数 重载、缺省参数、构造和析构函数、自定义操作符、内联函数、引用、友元、
模板、异常、名字空间,等等。用C++比用C 具有更宽广的空间,因为设计时 有更多的选择可以考虑。 在面对这么多的选择时,许多C 程序员墨守成规,坚持他们的老习惯。一<br>
般来说,这也不是什么很大的罪过。但某些C 的习惯有悖于C++的精神本质, 他们都在下面的条款进行了阐述。</p>
</blockquote></td>
</tr>
<tr>
<td bgcolor="#eff3f7">
<div align="right"><a href="#pagetop">>>>回页首</a></div></td>
</tr>
</table>
<table width="750" border="0" align="center" cellspacing="0">
<tr>
<td bgcolor="#CCCCCC"><p name="jianjie"><a name="content"><strong>目录</strong></a></p></td>
</tr>
<tr>
<td bgcolor="#eff3f7"><blockquote>
<div align="left">条款1:尽量用const 和inline 而不用#define 1<br>
条款2:尽量用<iostream>而不用<stdio.h> 5<br>
条款3:尽量用new 和delete 而不用malloc 和free 8<br>
条款4:尽量使用C++风格的注释 10 <br>
条款5:对应的new 和delete 要采用相同的形式 12<br>
条款6:析构函数里对指针成员调用delete 14<br>
条款7:预先准备好内存不够的情况 15<br>
条款8. 写operator new 和operator delete 时要遵循常规26<br>
条款9. 避免隐藏标准形式的new 32<br>
条款10. 如果写了operator new 就要同时写operator delete 35<br>
条款11: 为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符 47<br>
条款12: 尽量使用初始化而不要在构造函数里赋值 51<br>
条款13: 初始化列表中成员列出的顺序和它们在类中声明的顺序相同 58<br>
条款14: 确定基类有虚析构函数 60<br>
条款15: 让operator=返回*this 的引用 67<br>
条款16: 在operator=中对所有数据成员赋值 72<br>
条款17: 在operator=中检查给自己赋值的情况 79<br>
条款18: 争取使类的接口完整并且最小 87<br>
条款19: 分清成员函数,非成员函数和友元函数 93<br>
条款20: 避免public 接口出现数据成员 101<br>
条款21: 尽可能使用const 103<br>
条款22: 尽量用“传引用”而不用“传值” 114<br>
条款23: 必须返回一个对象时不要试图返回一个引用 118<br>
条款24: 在函数重载和设定参数缺省值间慎重选择 125<br>
条款25: 避免对指针和数字类型重载 130<br>
条款26: 当心潜在的二义性 135<br>
条款27: 如果不想使用隐式生成的函数就要显式地禁止它140<br>
条款28: 划分全局名字空间 141<br>
条款29: 避免返回内部数据的句柄 150<br>
条款30: 避免这样的成员函数:其返回值是指向成员的非const 指针或引用,但成员的访问级比这个函数要低 157<br>
条款31: 千万不要返回局部对象的引用,也不要返回函数内部用new 初始化的指针的引用 161<br>
条款32: 尽可能地推迟变量的定义 166<br>
条款33: 明智地使用内联 170<br>
条款34: 将文件间的编译依赖性降至最低 178<br>
条款35: 使公有继承体现 "是一个" 的含义 192<br>
条款36: 区分接口继承和实现继承 201<br>
条款37: 决不要重新定义继承而来的非虚函数 213<br>
条款38: 决不要重新定义继承而来的缺省参数值 216<br>
条款39: 避免 "向下转换" 继承层次 219<br>
条款40: 通过分层来体现 "有一个" 或 "用...来实现" 231<br>
条款41: 区分继承和模板 236<br>
条款42: 明智地使用私有继承 242<br>
条款43: 明智地使用多继承 249<br>
条款44: 说你想说的;理解你所说的 271<br>
条款45: 弄清C++在幕后为你所写、所调用的函数 273<br>
条款46: 宁可编译和链接时出错,也不要运行时出错 279<br>
条款47: 确保非局部静态对象在使用前被初始化 283<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -