- 浏览: 117831 次
- 来自: ...
文章分类
最新评论
Please "Learning Standard C++ as a New Language", and "Speaking C++ as a Native"
朋友的公司还在用C++的环境编写着“带类的C”代码,每天回来就倒苦水,我曾经工作过的一家公司也有动辄几千行的C风格的函数
这里概述一下C++最最基本的用法,只能算是入门前的准备工作
一、编程本身
-
描述问题,用于与人交流
-
描述解决方案,用于与计算机交流
假设解决方案就是问题的描述本身,那么,这是完美的,例如 Select * From books;
而目前主流开发平台还做不到这一点,于是存在两个我们需要处理的空间,“问题空间”和“算法空间”
小说的描述依赖于自然语言,凡不可言说者必保持沉默,程序的表达依赖于编程语言
学习C++,就是用C++的术语、词汇来描述这两个空间,而不是C语言的术语、词汇;其它语言也是如此
因此,你应该首先熟悉C++本身
二、语言本身
不要理会面向对象,不要理会泛型编程,不要理会函数式编程,不要理会产生式编程,在上学学习母语语法前,你已经学会了用人类的语言表达高兴愤怒,而不是用小狗或别的动物的语言,也已经学会了如何用人类的语言讨要你心爱的玩具;让我们用C++的语言做个玩具程序:
读入一个文本文件,将每一行文本形成的字符串按字母顺序从小到大排序,然后将排序后的内容写入另一个文件
分析:
问题空间中的对象:输入文件,字符串,输出文件
算法空间中的对象:读,缓冲,排序,写
用C++描述:
输入文件:ifstream
字符串:string
输出文件:ofstream
读:getline
缓冲:vector, vector.push_back
排序:sort
写:copy
最终的程序:
int main()
{
ifstream fin("in.txt") ; //输入文件
vector<string> buf; //缓冲区
string d; //字符串临时对象
while(getline(fin,d)) buf.push_back(d) ; //读,并缓冲
sort(buf.begin() ,buf.end()) ; //排序
ofstream fout("out.txt") ; //输出文件
copy(buf.begin() ,buf.end() ,ostream_iterator<string>(fout,"/n")) ; //写
}
没有char*[],scanf,printf,OpenFile等非我族类的词汇
三、入门
至少有四本教材可用于“正确的C++的正确的入门”,推荐阅读
Essential C++
C++ Primer
The C++ Programming Language
The C++ Standard Library
四、提高
定理的证明依赖于基础数学语言,但也可以依赖于其它已经被证明的定理,入门之后,就可以学习如何用C++来表达面向对象,表达通用算法,像前文的sort,copy等,或用来实现其它更高层的抽象,如用它来实现一种DSL,使我们能够将上面程序的描述和解决方案用下面的语句统一起来:
Write (Read * From in.txt Orderby alpha) To out.txt;
发表评论
-
The Object Primer
2004-12-11 11:21 5861,书名 被翻译成“ ... -
错误处理规范
2004-12-11 16:47 756错误处理规范 〇、概念澄清 概念 解释 错误 ... -
Java,误解为何如此之深
2005-08-24 13:50 593前几天被电话面试,问J ... -
Java:画蛇添足的编码规范
2005-09-02 13:13 607前几天公司培训编码规范: 第n条: ... -
synchronized : 规则, 推论与实践
2007-07-23 22:32 46414.3.Synchronization. Rule ... -
交互设计: 股市帮凶
2008-05-04 21:30 642同事 Y 在线操作股票时, 把"买入"点成 ... -
交互设计: 火车上的厕所
2008-05-26 17:17 606有人在动车组的厕所前等了很久, 直到乘务员路过说厕所是被锁住了 ... -
设计原则与模式: 案例介绍--CppUnit
2008-06-01 20:15 611设计原则与模式: 案例介绍--CppUnit CppUnit ... -
工作流:形参,实参,相关数据
2004-12-11 11:40 671关于形参,实参,相关数据 一、形参(FormalParame ... -
工作流:第一次发版,过程总结
2004-12-11 11:42 709交流 即时讨论:小组成员咫尺之遥,有问题立即提出并解决 ... -
工作流:第一次发版,设计总结
2004-12-11 11:43 610整体 面向接口:消息系统,持久系统等,其实现都是可替换 ... -
Beyond Workflow : An Introduction to Vitria BusinessWare
2005-09-26 10:13 803一、简介 Busines ... -
Vitria BusinessWare: 存储与访问安全
2006-03-26 15:45 746事实上,BusinessWare使用LDAP做为存储机制和 ... -
Vitria BusinessWare: 平台与软件总线
2006-04-01 12:59 838经过一段时间的使用 ... -
Vitria BusinessWare: Web Services
2006-04-01 14:30 739BusinessWare的Web Services ... -
Web Services:自洽,编码,交换模型
2006-04-01 16:02 6731, 自洽 以前曾经写过: 目前WebServi ... -
Web Services:WSDL 1.1 规范中的几个错误
2006-04-01 16:40 719读完了WSDL 1.1的规范,令人惊讶的是发现似乎例子中有几个 ... -
C++/CLI:被忽视的集成技术
2006-05-17 20:02 754十几行代码,就使一个重要的旧系统组件,完全融入了基于.Ne ... -
AJP/JK:异构Web平台的集成技术
2006-05-25 21:44 707Tomcat Connector 可以将Tomcat ... -
Vitria BusinessWare: 事件与端口
2006-05-27 17:24 656Event BusinessWare是一个事件驱动的系统 ...
相关推荐
《Essential C++中文版》是C++编程语言的经典入门书籍,由国际知名专家Stanley B. Lippman撰写,著名计算机专家侯捷及其搭档侯俊杰翻译。这本书是《C++ Primer》的作者Stanley B. Lippman在该书第三版完成后,专为...
"Primer C++缩减版"意味着本书可能是《C++ Primer》的精简版本,旨在更高效地传授C++的核心概念和语法。 C++是一种强类型、静态类型的编程语言,起源于C语言,但增加了面向对象编程(OOP)和泛型编程(Generic ...
而《Essential C++》是他继《C++ Primer》之后,专门针对初学者设计的一本书籍。尽管它比《C++ Primer》更为简短,但并不意味着它只是浅显的入门读物。Lippman在书中对素材的选择与组织安排下了很大的功夫,以确保...
本书的翻译者侯捷在译序中提到,Lippman的《C++ Primer》因其详尽和全面而著称,但随着Lippman在C++领域的进一步探索,他决定编写这本更专注于面向对象编程基础的《Essential C++》。尽管这本书的篇幅较《C++ Primer...
本书的序言部分指出,尽管Lippman先前编著的《C++ Primer》是C++领域内极具权威的教材,但它长达1237页,对于初学者来说可能过于庞大和深奥。因此,Lippman希望提供一本更为轻薄短小的书籍,这便是《Essential C++》...
《C++ Primer Plus 第六版》是编程领域中一本经典的C++学习教程,由经验丰富的技术专家Stephen Prata撰写。这本书旨在为编程专业人士提供高质量的参考和教程,深入浅出地讲解C++语言的核心概念和技术。 C++ Primer ...
essential c++ ,与c++ primer 同作者,比其更简单,更适合初学者
Essential C++中文版(全),C++初学者的必读之物。C++ PRIMER的精华浓缩版。
可以不太严格地认为这本书是《C++Primer》的精简版,入门级C++教材,但不是为了完完全全的编程新手而写。(本来还以为这个网站也像其它的骗人网站一样,表面写这有好书,却只是耽误我们的注册时间。没想到却下到了C++...
Lippman也是《C++ Primer》这本经典教材的作者之一,因此《Essential C++》可以视为他对于C++核心概念的精炼阐述。这本书对于初学者和有一定经验的开发者来说都是一个极好的资源,因为它不仅涵盖了C++的基础,还深入...
全部英文版,包括: Accelerated c++ C++Primer C++程序设计语言(特别版) Effective C++ Third Edition Essential C++ Exceptional.C++ More Effective C++ More Exceptional C++
- 认为《Essential C++》适合作为教材,《C++ Primer》适合作为参考书,《Effective C++》适合作为课外读物。 - 不赞同一开始就养成“好习惯”的观点,认为实践更重要。 #### 嘉宾一:孟岩(梦魇) - **背景简介*...
例如,《C++ Primer》和《Essential C++》适合初学者入门;而《Effective C++》和《STL源码剖析》则更适合有一定基础的开发者深入学习;《MFC编程实践》则为那些需要处理Windows GUI编程的人提供了一个很好的起点。...
Lippman 的 C++ Primer 或 Essential C++,这两本书都是学习 C++ 的基础书籍。C++ Primer 是一本非常详细的书籍,适合基础较好的学习者,而 Essential C++ 则是基础较弱的学习者。 接下来,作者推荐阅读 Piken 和 ...
C++.Common.Knowledge.Essential.Intermediate.Programming.chm C++.Template.Metaprogramming.chm Effective.C.Plus.Plus.55.Specific.Ways.to.Improve.Your.Programs.and.Designs.3rd.Ed.chm Exceptional.C++....
Essential C++ 中文版C++ Primer中文版(第4版)(特别版)Effective C++:改善程序技术与设计思维的55个有效做法(第三版)(中文版)C++ 编程思想More Effective C++中文版Exceptional C++中文版More Exceptional ...