远征系列----起航篇(学杂记)
明天就是新年了,这里给大家拜个年,祝大家新年快乐,万事如意,现在就是分享在学习了第一章起航篇中的一些学习心得。(写完发现已经是新年了,尴尬。。)
接下来是起航篇的学习内容
1.1简介
*得知了c++的地位是比较高的,而且比较稳定。(附上一张c++的社区排名)
*还有c与c++的区别有一点在于c++加入了面向对象,两者都有的是面向过程(并不懂什么是面向对象,于是百度了一下)
解答:
*面对对象就是:
把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。
*面向过程就是:
自顶向下顺序执行,逐步求精;其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。程序流程在写程序时就已决定。
之后附加的小练习我是做错了(答案是D)
*一直以为c++更为高级,就应当更加的高效,可是并不是这样,于是上网查找了这个问题。
找到了一个比较适合的答案(http://www.educity.cn/develop/476407.html)
(摘取的一小点:
1.速度之王:c语言不论在处理器中还是在内存堆栈里,都是速度最快的。而且其高效不仅仅体现在速度上,即使是内存的管理以及启动时间上,也无人望其项背。
2.我总是告诫自己,我需要一个更加高效的可以替代c语言的东西。它只要可以修正程序里面那写毛糙的细节然后解决问题就可以了。但是从事实来看,不论是从语法、从语义、从工具或者从"自顶至底"的开发方法来看,没有什么可以值得我们为止付出努力。到现在为止,c语言毫无疑问的是最高效的语言,我认为短期内这不会有任何改变。)
原来C语言才是根,是本。
2.1IDE环境的构建
没什么特别的,就是推荐了Microsoft Visual Studio 2010,及其使用方法。
3.1 小练习(比较简单,感觉和C语言差不多,没什么压力完成)
4.1c++的特性
*明白了几种C语言的数据类型,里面也包括了几种大一上没接触的类型(联合类型和枚举类型)。
这节主要还是让我认识到了bool类型(一个我理解了半天,在自己理解的基础之上再向堂哥请教,基本是有了一定的理解)
*对Bool的理解(本人感觉挺重要的,弄明白也觉得挺自豪的,莫取笑。。。)
Bool y=false;(其实y=false和y=0是完全等价的)
Cin>>y;(疑问:如果我不设置这一项的话,也就是不输入y,那么它是否说明都不代表呢? 答案是其实它代表的就是0,(如果你用cout<<boolalpha<<y那么就是false了))
(如果是输入0 的话就代表是错误的,如果输入是1则代表是正确的)
其实bool和int,float之类的是一个意思,不过它只有两个值,一个是0 ,另一个是1,0代表是false,1代表是true,bool应用于if的判断中。
(疑问:能不能直接打印出y的值,比如输入是0,那么cout<< 这个东东 ;那么他是否能够输出0,如之前的教程里面表示的如果是cout<<boolalpha<<y;那么你输入的是0,它输出的就是false?
答案:其实是可以的,输出的就是0,甚至你可以拿它来进行简单的运算也是可以了,这里我表示有点惊呆了,但也是这里我更加明白了bool的意义了)
*还有学习了c++可以随用随定义(但是我在学习c的时候并没有注意到这点,我都是习惯性的回到最初的那行进行数据的定义),还有就是c++多了个int x(1024),感觉没什么差别。。。。
4.3c++的输入输出的方式
*输入
用>>表示如,也比较好几,就像是吐进来的一样。而让我感觉真正神奇的是居然不需要再加了繁琐的前缀(%d之类的)
(但是这里我也有点疑问:那空格到底是表示要打下一个内容还是空格本身就是内容的一部分。(这个暂时还未解决。。。。)
*输出
输出跟输入一样,<<也是很好理解,就是突出来,朝外面的。(感觉输出就没什么特别的)
学了输出和输入我感觉就是c++看上去会更加的简洁,自由吧,不过我之前看过一句话,如今也是我的qq签名:自由的代价是永远警惕。感觉这种自由也会更加的容易出错,所以我认为使用时候需要更加注意。
接下来的练习也没什么错误吧,就前面举的那个练习是我记忆深刻的。
4.5c++新特征和输入输出的演示
这里我得到的就是八进制,十进制,十二进制的表示(而十二进制就是输出字符之类的)
*dec是十进制 如cout<<dec<<b 就会把b转换成10进制再输出
*hex是16进制 如cout<<dec<<b 就会把b转换成16进制再输出
*oct是8进制 如cout<<dec<<b 就会把b转换成8进制再输出
还有点就是对bool值更深的认识,前面已经讲完了,这里就不多说了。
4.6c++之namespace
其实我觉得namespace和c的数据类型很像,所以就比较好理解。
如果是写X::y那就不需要些using namespacex;(这个猜想在后面的教程里得到了肯定)
用了using namespaceB 接下来没有指定是用哪一个就是默认指定的是B里面的东西
(疑问:那我能够同时写using namespaceA using namespaceB吗,如果是这样的话,那他会怎么判断我默认的是哪一个呢? 还未解决的问题)
之后的一点内容也就是让我理解更加深刻,更加熟练,并没有太多的感想感悟。