📄 [6] big picture issues, c++ faq lite.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0049)http://www.sunistudio.com/cppfaq/big-picture.html -->
<HTML><HEAD><TITLE>[6] Big Picture issues, C++ FAQ Lite</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META http-equiv=Content-Language content=zh-cn>
<META content=big-picture.html name=FILENAME>
<META content="[6] Big Picture issues, C++ FAQ Lite" name=ABSTRACT>
<META content=cline@parashift.com name=OWNER>
<META content="Marshall Cline, cline@parashift.com" name=AUTHOR>
<META content="MSHTML 6.00.2462.0" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId><LINK rev=made
href="mailto:cline@parashift.com"><LINK
href="[6] Big Picture issues, C++ FAQ Lite.files/cpp-faq.css" type=text/css
rel=stylesheet></HEAD>
<BODY>
<H1><A name=top></A>[6] 综述<BR><SMALL><SMALL>(Part of <A
href="http://www.sunistudio.com/cppfaq/index.html"><EM>C++ FAQ Lite</EM></A>, <A
href="http://www.sunistudio.com/cppfaq/copy-permissions.html#[1.2]">Copyright ©
1991-2001</A>, <A href="http://www.parashift.com/" target=OutsideTheFAQ>Marshall
Cline</A>, <A
href="mailto:cline@parashift.com">cline@parashift.com</A>)</SMALL></SMALL></H1>
<P>简体中文版翻译:<A href="http://www.sunistudio.com/nicrosoft">申旻</A>,<A
href="mailto:nicrosoft@sunistudio.com">nicrosoft@sunistudio.com</A>(<A
href="http://www.sunistudio.com/">东日制作室</A>,<A
href="http://www.sunistudio.com/asp/sunidoc.asp">东日文档</A>)</P>
<HR>
<H3>FAQs in section [6]:</H3>
<UL>
<LI><A href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.1]">[6.1]
C++ 是一种实用的语言吗?</A>
<LI><A href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.2]">[6.2]
C++ 是一种完美的语言吗?</A>
<LI><A href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.3]">[6.3]
面向对象(OO)有什么用?</A>
<LI><A href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.4]">[6.4]
C++ 比 Ada 更好吗?(或 Visual Basic, C, FORTRAN, Pascal, Smalltalk,或其它的语言?)</A>
<LI><A href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.5]">[6.5]
谁在用C++?</A> <IMG alt=UPDATED!
src="[6] Big Picture issues, C++ FAQ Lite.files/updated.gif">
<LI><A href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.6]">[6.6] 学习
OO/C++ 需要多长时间?</A>
<LI><A href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.7]">[6.7]
从商业角度看 C++ 有哪些特征?</A>
<LI><A href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.8]">[6.8]
虚函数(动态绑定)对于 OO/C++来说是主要的吗?</A> <IMG alt=UPDATED!
src="[6] Big Picture issues, C++ FAQ Lite.files/updated.gif">
<LI><A href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.9]">[6.9]
我来自密苏里州。你能给我一个理由,为什么虚函数(动态绑定)造成很大的不同?</A>
<LI><A href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.10]">[6.10]
C++ 是否向下兼容 ANSI/ISO C?</A>
<LI><A href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.11]">[6.11]
C++ 标准化了吗?</A><IMG alt=UPDATED!
src="[6] Big Picture issues, C++ FAQ Lite.files/updated.gif">
<LI><A href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.12]">[6.12]
何处能得到 ANSI/ISO C++ 标准的拷贝?</A> <IMG alt=UPDATED!
src="[6] Big Picture issues, C++ FAQ Lite.files/updated.gif"> </LI></UL>
<P>
<HR>
<P><A name=[6.1]></A>
<DIV class=FaqTitle>
<H3>[6.1] C++ 是一种实用的语言吗?</H3></DIV>
<P>是的。
<P>C++ 是一种实用的工具。<A
href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.2]">它不完美<!--rawtext:[6.2]:rawtext--></A>,但是有用。
<P>在软件产业的世界里,C++被看作一种可靠的,成熟的,主流的工具。它得到普遍的工业支持,因而从一种全面的商业观点来看,它是“优秀”的。
<P><SMALL>[ <A
href="http://www.sunistudio.com/cppfaq/big-picture.html#top">Top</A> | <A
href="http://www.sunistudio.com/cppfaq/big-picture.html#bottom">Bottom</A>
| <A
href="http://www.sunistudio.com/cppfaq/how-to-post.html">Previous section</A>
| <A
href="http://www.sunistudio.com/cppfaq/classes-and-objects.html">Next section</A>
]</SMALL>
<HR>
<P><A name=[6.2]></A>
<DIV class=FaqTitle>
<H3>[6.2] C++ 是一种完美的语言吗?</H3></DIV>
<P>不是。
<P>C++的设计原意不是作为完美的面向对象语言的示范。它被设计为一种实用的工具,来解决现实世界的问题。它有少许的瑕疵,但是在完美之前就没有用的是纯理论的框架。而那不是C++的目标。
<P><SMALL>[ <A
href="http://www.sunistudio.com/cppfaq/big-picture.html#top">Top</A> | <A
href="http://www.sunistudio.com/cppfaq/big-picture.html#bottom">Bottom</A>
| <A
href="http://www.sunistudio.com/cppfaq/how-to-post.html">Previous section</A>
| <A
href="http://www.sunistudio.com/cppfaq/classes-and-objects.html">Next section</A>
]</SMALL>
<HR>
<P><A name=[6.3]></A>
<DIV class=FaqTitle>
<H3>[6.3] 面向对象(OO)有什么用?</H3></DIV>
<P>面向对象技术是我们所知道的开发大型的,复杂的软件应用和系统的最佳方法。
<P>OO:应付大型的,复杂的软件系统时,软件工业是“失败的”。但是这种“失败”实际上归因于我们的<I>成功</I>:我们的成功使得用户想要的更多。不幸的是我们创造了市场的饥渴,而“结构化”分析,设计和编程技术无法满足这种饥渴。因此需要我们创造一种更好的典范。
<P>C++ 是一种面向对象(OO)的编程语言。C++ 也能够被当作传统的编程语言使用(作为“一种更好的
C”)。但是如果你“作为一种更好的C”来使用它,那么就不要期望得到面向对象所带来的好处。
<P><SMALL>[ <A
href="http://www.sunistudio.com/cppfaq/big-picture.html#top">Top</A> | <A
href="http://www.sunistudio.com/cppfaq/big-picture.html#bottom">Bottom</A>
| <A
href="http://www.sunistudio.com/cppfaq/how-to-post.html">Previous section</A>
| <A
href="http://www.sunistudio.com/cppfaq/classes-and-objects.html">Next section</A>
]</SMALL>
<HR>
<P><A name=[6.4]></A>
<DIV class=FaqTitle>
<H3>[6.4] C++ 比 Ada 更好吗?(或 Visual Basic, C, FORTRAN, Pascal, Smalltalk,
或其他语言?)</H3></DIV>
<P>这样的问题没有意义。在对这个问题发表不同意见之前请先阅读下文。
<P>99%的情况下,编程语言的选择是出于商业上的考虑,而不是技术上的考虑。真正重要的是如同开发机器的编程环境,配置机器的运行时环境,运行时和/或开发环境的许可证/合法执照,开发者,咨询服务,和企业文化/政策这些商业上的考虑,它们扮演的角色一般比编译期性能,运行时性能,静态还是动态类型,静态还是绑定等更为重要。
<P>从纯粹的技术角度争论一种语言比另一种更好的人(也就是忽略占支配地位的商业论点的人),正是暴露了他们自己技术上的缺乏,别听他们的。
<P><SMALL>[ <A
href="http://www.sunistudio.com/cppfaq/big-picture.html#top">Top</A> | <A
href="http://www.sunistudio.com/cppfaq/big-picture.html#bottom">Bottom</A>
| <A
href="http://www.sunistudio.com/cppfaq/how-to-post.html">Previous section</A>
| <A
href="http://www.sunistudio.com/cppfaq/classes-and-objects.html">Next section</A>
]</SMALL>
<HR>
<P><A name=[6.5]></A>
<DIV class=FaqTitle>
<H3>[6.5] 谁在用 C++? <IMG alt=UPDATED!
src="[6] Big Picture issues, C++ FAQ Lite.files/updated.gif"></H3></DIV><SMALL><EM>[Recently
rewrote (on 7/00). <A
href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.8]">Click here to go
to the next FAQ in the "chain" of recent
changes<!--rawtext:[6.8]:rawtext--></A>.]</EM></SMALL>
<P>很多很多公司和政府部门,非常多。
<P>有大量的开发者(并且因此有大量的底层有效支持,包括卖主,工具开发者,培训等等)是<A
href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.7]">C++的特征</A>之一
<P><SMALL>[ <A
href="http://www.sunistudio.com/cppfaq/big-picture.html#top">Top</A> | <A
href="http://www.sunistudio.com/cppfaq/big-picture.html#bottom">Bottom</A>
| <A
href="http://www.sunistudio.com/cppfaq/how-to-post.html">Previous section</A>
| <A
href="http://www.sunistudio.com/cppfaq/classes-and-objects.html">Next section</A>
]</SMALL>
<HR>
<P><A name=[6.6]></A>
<DIV class=FaqTitle>
<H3>[6.6] 学习 OO/C++ 需要多长时间?</H3></DIV>
<P>一些公司成功地讲授标准的工业界的“短期课程”,将大学一学期的课程压缩到了一个星期40个小时。但是不论你在何处获得培训,要知道课程交给你的是元件,大多数人是在接手项目之后才将概念“凝结成形”,得以学成。即使得到最好的培训,也不是现成的。
<P>精通OO/C++需要6-12个月。如果身边有专家的话,会少些。如果没有一个“好的”通用型的C++类库,则会多一些。成为可以指导别人的专家则需要3年。
<P>有些人永远不行,除非你是可教的“儒子”并且有个人驱动力。可教的最低要求是,当你错了的时候必须能够承认。驱动力的最低要求是,你必须愿意投入一些额外的时间(学习一些新的东西比改变你的典范(paradigm)[也就是说,改变你思考的方法,改变良好的观念,改变你在技术世界中的思维模式]要容易的多)。
<P>你应该做两件事:
<UL>
<LI>找<A
href="http://www.sunistudio.com/cppfaq/how-to-learn-cpp.html#[26.1]">一个“高手”</A>
<LI>看两类书:一类是 <A
href="http://www.sunistudio.com/cppfaq/how-to-learn-cpp.html#[26.6]">C++法律的指导<!--rawtext:[26.6]:rawtext--></A>,
另一类是 <A
href="http://www.sunistudio.com/cppfaq/how-to-learn-cpp.html#[26.5]">C++道德的指导</A>
</LI></UL>
<P>你不应该做两件事:
<UL>
<LI><A
href="http://www.sunistudio.com/cppfaq/how-to-learn-cpp.html#[26.2]">不应该去学习 C
作为学习 OO/C++ 的台阶<!--rawtext:[26.2]:rawtext--></A>
<LI><A
href="http://www.sunistudio.com/cppfaq/how-to-learn-cpp.html#[26.3]">不应该去学习
Smalltalk 作为学习 OO/C++ 的台阶</A> </LI></UL>
<P><SMALL>[ <A
href="http://www.sunistudio.com/cppfaq/big-picture.html#top">Top</A> | <A
href="http://www.sunistudio.com/cppfaq/big-picture.html#bottom">Bottom</A>
| <A
href="http://www.sunistudio.com/cppfaq/how-to-post.html">Previous section</A>
| <A
href="http://www.sunistudio.com/cppfaq/classes-and-objects.html">Next section</A>
]</SMALL>
<HR>
<P><A name=[6.7]></A>
<DIV class=FaqTitle>
<H3>[6.7] 从商业角度看 C++ 有哪些特征?</H3></DIV>
<P>从商业角度看 OO/C++ 有这样一些特征:
<UL>
<LI>C++ 有<A
href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.5]">巨大的安置基础</A>,这意味着你会有<A
href="http://www.sunistudio.com/cppfaq/big-picture.html#[6.4]">很多厂商在工具,环境,咨询服务等上提供支持</A>,而且你可以在你的履历上加上非常有价值的一条。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -