九天雁翎的博客
如果你想在软件业获得成功,就使用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。 -- Paul Graham

从易到难编写C++程序,(1)问题:把键盘输入的字符串逆序输出。

先为整个系列来个说明,我不算个C++的高手,哪怕入门都还算不上,但是我却愿意给还没有开始学习C++的人一个指引,也许我不配,但是你可以选择不看啊。我只说两句话,1、自己编程是学习C++最佳的方式;2、当需要一个东西的时候,才去了解它。对不对,我不知道,但我这样认为,你也可以有你自己的看法。我每次提出一个问题,然后想办法解答,我通过这些我自己提出的问题进一步的学习。为了方便,问题一个帖,解答一个帖,因为解答有可能是在提出问题很多天后………………..你看到了也可以先尝试。看到我的解答有什么不对,或者有什么可以改进的,欢迎你提出来。我用的编译器是VC.NET 2005。so………………….first,光Hello World也太没有意思了,简单的,把键盘输入的字符串逆序输出。

阅读全文....

突然决定,再发文章,只讲实例,思想,不讲细节

也许思想才是最重要的,搞那么多细节有什么用?翻翻书不就懂了,以前常常假设,假如要我从零基础来讲C++,我会怎么来讲,还是按部就班的如TC++PL,C++ Primer,一样吗?以前感觉好像也没有别的办法,我现在突然觉得,第一节课,我就会告诉我的学生,买两本书TC++PL,C++ Primer,嫌贵?首先不说没有钱学编程比较难,去下电子版吧。然后大概讲下编程的概念,就开始要学生实现一些实际的功能与编写实用的,他们自己感兴趣的例子,为什么不呢?碰到不懂的东西,书上可以查啊?不会查书?那你还学什么编程?你以为能学到什么地步可以编程序不查书吗?没有那一天!那么现在就开始习惯吧。也许对于我这样学习C才几年,学习C++也才几个月的人,就开始讨论准备怎么教学生有点可笑,但是,我一直以为,教与学是互相促进的,看过最深刻的话是,碰到比较难的概念,就尝试向别人讲清楚,然后自己才能清楚,而且,我们校长讲选老师的时候这样说的,,学术水平非常高,学术素养过人,而且讲课讲得有深度能浅出,学生喜欢,这是教学水平好,而没有什么学术水平,但是讲课却能虎虎生风,面面俱到,深入主旨,要点,那叫教学艺术!斯蒂文霍金以前讲他刚刚到三一学院教数学的时候,还是自己前一天看一课,然后第二天教一课的呢,我怕什么?又不误人子弟,网上随便发发而已:)

阅读全文....

关于C++学习的再思考

突然的顿悟, 学习C++不应陷入啃书的误区。它只是工具,应立即动手实践,在项目中学习,而非追求完美基础再开始。

阅读全文....

收到TCPL的时候,还是感叹C语言的简洁

当我的电脑桌前摆着800多面的TC++PL的和近800面的TC++SL,并且正在学习700多面的C++ Primer的时候,当我收到一共只有250面而实际内容讲解只有将近150面的TCPL(后面为UNIX接口,C标准文档解释及附录)的时候我还能有什么想法?而且我还知道,C可以解决任何C++能解决的问题,虽然说要进行C语言的实际开发,光这150面的内容还不够,还需要参考书,但是,难道要进行C++的实际开发,TC++PL,TC++SL,C++ Primer又够了吗?天哪,150面的C啊。。。。。。。。。除了没有想法,还是没有想法。虽然我知道我无异于在学会了VC.net 2005后感叹TC2.0的简洁。。。。。但是简洁就是简洁。。。。。

阅读全文....

学了模板再来看容器输出的简化

以前提到了在学习C++标准库的过程中《 _ 关于容器输出的学习与简化过程_ 》,当时没有学习一点模版的东西,所以怎么弄都还是比较复杂,学到模版的第一件事,我就是想用它来简化容器的输出,当然,实现后,我也体会到了模版的强大和泛型编程方式的优点(这样说似乎是太大了,不过可以管中窥豹嘛),下面看一个用模版实现的容器输出:

阅读全文....

浅谈C++类(10)--函数对象

好久好久没有时间学C++了,郁闷,主要是因为最近有考试逼近,不得不看一些其他的书。看那些不能说没有用处,但是实在是不怎么感兴趣的书,也是一种痛苦。今天很晚了,抽出点时间,学了个很有用的东–函数对象,的确很有用。关于操作符重载其实并没有讲完,比如前++,后++,*,[]等等但是都差不多,感觉没有什么好讲的,我个人对这个浅谈系列的定位感觉应该是一些自己的笔记和心得,并不像让它成为百科,因为以前太过于求全,浪费了太多时间,以后碰到想讲的就讲,不想讲的就不为了全而凑数了。回到主题,先看一个我没有讲过的操作符重载(),在一个家伙后面加括号,那不就是函数吗?恩,就让类可以像函数一样调用!呵呵,搞了这么久,类才有点新意。看个没有函数对象的例子先,还是我们的水果,当然为了简单,我把以前那些复杂的东西都删了,就是个简单的水果。

阅读全文....

浅谈C++类(9)--重载算数关系操作符

本来是可以一讲就把重载全部讲完的,因为昨天太晚了,很困,所以就只讲了重载输入输出操作符,今天概念性的东西就不说了,直接看上一讲的《浅谈C++类(8)–重载输入输出操作符》吧,今天就补充一下其他的操作符的重载,其实都差不多,不过我感觉自己实际输入调试过后和没有调试只懂概念有个印象是完全不一样的。我一次把除了下标和成员访问操作符以外的操作符都写在下面这个例子里面,你自己分析和调试吧,我在主程序里面只调试了一部分。

阅读全文....

浅谈C++类(8)--重载输入输出操作符

其实我们已经用过操作符重载,还记得«和»吗?本来不是移位操作符吗?在C++里面我们已经把他们当作输入输出操作符用过了,我们今天来研究一下重载他们用来输入输出类,先还是用水果来举一个例子。

阅读全文....