zoukankan      html  css  js  c++  java
  • C++ Primer第一章学习笔记——C++初邂逅

       刷题刷了半个寒假,春节和情人节也过去了,于是我也要开始刷刷放在我桌上很久的书本了,不然就徒带回家了。。。


       第一本当然是C++Primer了,说来惭愧,高中时买的这本C++Primer 4版就刚买时看了30几页,留到现在开始正式学C++时才看。如今我学了C语言后C++的东西更是忘得一干二净,得重新再看一遍了。

       这次先看了一点,把第一章看了,原本以为第一章是快速入门,内容跟C差不多不用记笔记,看内容出入挺大,还是老实地过来写学习笔记。

       这是我初次接触C++,文章会比较干燥,不会有很多水。。。

       (PS:为了学得多一点,我也拜读了几个博主的读书笔记以及其他资料,如有相似,是我copy的。。。)


    1.C++不再使用头文件<stdio.h>,而是直接用<iostream>IO库

    2.输入输出用的std::cint, cout, endl,以及<<和>>(这不是C语言的位操作符吗。。)

    std命名空间也是第一次遇到的。这些的确是很有趣的东西。

    *资料from百科:所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。
    一 :<iostream>和<iostream.h>格式不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。 因此,当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。
    二: 由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:
    1、直接指定标识符。例如std::ostream而不是ostream。完整语句如下: std::cout << std::hex << 3.4 << std::endl;
    2、使用using关键字。 using std::cout; using std::endl; using std::cin; 以上程序可以写成 cout << std::hex << 3.4 << endl;
    3、最方便的就是使用using namespace std; 例如: using namespace std;这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写: cout <<hex << 3.4 << endl;因为标准库非常的庞大,所以程序员在选择的类的名称或函数名时就很有可能和标准库中的某个名字相同。所以为了避免这种情况所造成的名字冲突,就把标准库中的一切都被放在名字空间std中。但这又会带来了一个新问题。无数原有的C++代码都依赖于使用了多年的伪标准库中的功能,他们都是在全局空间下的。所以就有了<iostream.h>和<iostream>等等这样的头文件,一个是为了兼容以前的C++代码,一个是为了支持新的标准。命名空间std封装的是标准程序库的名称,标准程序库为了和以前的头文件区别,一般不加".h"


    3.C++貌似没有什么C89 C99标准之分,也可能有,但书上都没有说。。

    4.C++多了个东西——类

    (From cnblogs.kingcat) C++中类型分为内置类型和类类型,类属于类类型。类是一种复杂的数据结构支持继承,C++中的类结构上和其他高级语言类似,但由于指针,引用,常量的大量组合使用使得它类的复杂度比一般语言要高的多。类有非常多得灵活应用,意味着有很多需要掌握的内容,只有深刻理解这些基本概念才能用好学好类用好类因为类本质上是对这些基础概念的一个有序组合。


    这些是我学过C后第一次接触C++的感觉,但网上人家所列出的区别是多很多的,于是摘录之。。。

    1,全新的程序 程序思维,C 语言是面向过程的,而 C++ 是面向对象的。 
    2,C 语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而 C++ 对于大多数的函数都是有集成的很紧密,特别是 C 语言中没有的 C++ 中的 API 是对 Window 系统的大多数 API 有机的组合,是一个集体。但你也可能单独调用 API。 
    3,特别是 C++ 中的图形处理,它和语言的图形有很大的区别。C 语言中的图形处理函数基本上是不能用在中 C++ 中的。C 语言标准中不包括图形处理。 
    4,C 和 C++ 中都有结构的概念,但是在 C 语言中结构只有成员变量,而没成员方法,而在 C++ 中结构中,它可以有自己的成员变量和成员函数。但是在 C 语言中结构的成员是公共的,什么想访问它的都可以访问;而在 VC++ 中它没有加限定符的为私有的。 
    4,C 语言可以写很多方面的程序,但是 C++ 可以写得更多更好,C++ 可以写基于DOSr程序,写 DLL,写控件,写系统。 
    5,C 语言对程序的文件的组织是松散的,几乎是全要程序处理;而 C++ 对文件的组织是以工程,各文件分类明确。 
    6,C++ 中的 IDE 很智能,和 VB 一样,有的功能可能比VB还强。 
    7,C++ 对可以自动生成你想要的程序结构使你可以省了很多时间。有很多可用的工具如加入 MFC 中的类的时候,加入变量的时候等等。 
    8,C++ 中的附加工具也有很多,可以进行系统的分析,可以查看 API;可以查看控件。 
    9,调试功能强大,并且方法多样。
    (无法找到原话作者)
     

     第一条不由得让我想起最近网上的段子,程序员没有对象哪里来面象对象。。。(好苦逼)


    进度超慢,先发表了。。。之后慢慢更新。。。


  • 相关阅读:
    permission 文档 翻译 运行时权限
    TabLayout ViewPager Fragment 简介 案例 MD
    Log 日志工具类 保存到文件 MD
    OkHttp 官方wiki 翻译 MD
    Okhttp 简介 示例 MD
    OkHttp 官方Wiki之【使用案例】
    DialogPlus
    倒计时 总结 Timer Handler CountDownTimer RxJava MD
    RecyclerView 判断滑到底部 顶部 预加载 更多 分页 MD
    CSS3的媒体查询(Media Queries)与移动设备显示尺寸大全
  • 原文地址:https://www.cnblogs.com/java20130723/p/3212202.html
Copyright © 2011-2022 走看看