zoukankan      html  css  js  c++  java
  • 一步一步学习C++

         根据《C++ primer》第五版 总结学习心得。

         在实践中,不必全面地使用C++语言的各种特性,而应根据工程的实际情况,适当取舍(譬如动态类型信息,虚拟继承、异常等特性的使用,很值得商榷),通常只鼓励使用C++语言的一个子集就够了。

         编程风格的,参考Google发布的 《 Google C++ Style Guide》。

         C++语言的业界标准,从C++98到现在的C++11。C++之父 Bjarne Stroustrup说过,C++支持四种不同的编程风格:C风格、基于对象、面向对象和泛型。

         书中提到的 C++进阶书籍,Scott Meyers的《Effective C++》,《C++ Concurrency in Action》是学习用标准C++开发并发程序的最佳选择,还有陈硕的《Linux多线程服务端编程》。

         现代C++语言大体可以看做是三部分组成的:

         1. 低级语言,大部分继承自C语言

         2. 现代高级语言特性,允许我们定义自己的类型以及组织大规模程序和系统

         3. 标准库,它利用高级特性来提供有用的数据结构和算法

         

         定义的数据类型,不仅定义了数据元素的内容,还定义了这类数据上可以进行的运算。

         标准库定义了4个IO对象,标准输入对象,类型为istream,名字为cin。

                                        标准输出对象,类型为ostream,名字为cout。

                                                          类型为ostream,名字为cerr,用于输出警告和错误信息。

                                                           类型为ostream,名字为clog,输出程序运行时的一般性消息    

       标准库定义的所有名字都在命名空间std中,使用标准库的前提,是在程序开头添加using namespace std 这行语句。

       C++语言规定 short <= int <= long <= long long ,C++规定了这些类型的最小字节数,具体字节由机器体系和编译器共同决定。

       1:  void test_read_many_number()
       2:  {
       3:  /**< 读取数量补丁的输入数据 */
       4:     int sum = 0;
       5:     int value = 0;
       6:     while( std::cin >> value)/**<  使用Cin作为检测条件,检测流的状态 如果流是有效的,那么检测成功
       7:                                    当遇到文件结束符 或者 遇到一个无效输入(此例中,无效输入为不是一个整数)
       8:                                     istream对象的状态会变为无效
       9:                                     在windows系统下,Ctrl+Z 等同于输入文件结束符
      10:                                     在Unix系统下,Ctrl+D 等同于输入文件结束符
      11:  
      12:                                     可以在命令行中,使得输入输出重定向到文件中去
      13:                                     "C++_Primer.exe" < ../../input.txt > a.txt
      14:                                      */
      15:          sum += value;
      16:   
      17:     std::cout << "The input sum is "<<sum <<std::endl;
      18:   
      19:  }

        注意事项:切勿混用带符号类型和无符号类型。因为当表达式中,既出现无符号类型,又出现有符号类型,在进行运算时,有符号数会自动转换为无符号的数据,造成错误。

        对于字符串的存储,编译器在每个字符串的结尾处,添加一个空字符’’,作为字符串结束标志。

        对象的类型决定了对象所能参与的运算。

        引用为对象起了另外一个名字,引用本身并非一个对象。

       当编译时初始化方式定义了一个const对象时,编译器会在编译过程中,把用到该变量的地方都替换成对于的值。对于 const int bufSize = 512这句话来说,编译器会找到代码中所用用到bufSize的地方,然后用512来替换。默认情况下,const对象被设定为仅在本文件内有效。当多个文件中出现了同名的const变量时,相当于在不同文件中分别定义了独立的const变量。可以在const修饰的变量前面加extern关键字,这样就可以只需要定义一次,而在多个文件中共享。

  • 相关阅读:
    (原)Lazarus 异构平台下多层架构思路、DataSet转换核心代码
    (学)新版动态表单研发,阶段成果3
    (学) 如何将 Oracle 序列 重置 清零 How to reset an Oracle sequence
    (学)XtraReport WebService Print 报错
    (原)三星 i6410 刷机 短信 无法 保存 解决 办法
    (原) Devexpress 汉化包 制作工具、测试程序
    linux下网络配置
    apache自带ab.exe小工具使用小结
    Yii::app()用法小结
    PDO使用小结
  • 原文地址:https://www.cnblogs.com/cherishui/p/4231019.html
Copyright © 2011-2022 走看看