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关键字,这样就可以只需要定义一次,而在多个文件中共享。

  • 相关阅读:
    HttpServletRequest request 获取form参数的两种方式
    mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法
    Better exception message for missing @RequestBody method parameter
    下载Xcode历史版本方法
    CGLib与JDK的动态代理
    LeetCode: Longest Consecutive Sequence [128]
    POJ训练计划2777_Count Color(线段树/成段更新/区间染色)
    JBoss AS 7性能调优(三)
    java的Future使用方法
    Redis学习资源
  • 原文地址:https://www.cnblogs.com/cherishui/p/4231019.html
Copyright © 2011-2022 走看看