zoukankan      html  css  js  c++  java
  • C++ Primer 学习笔记

      学习计划:一天一章,39页,2022年1月底学完,Primer 意思为入门书,初级读本

      第一章 快速入门

      1.1  编写简单的C++ 程序

      每个C++程序都包含一个或多个函数,而且必须有一个命名为main,main函数是唯一被操作系统显式调用的函数,返回0值表明程序成功执行完毕,返回值必须是int型,int类型是内置类型,即该类型是由C++语言定义的,也叫基本类型

      调用GUN编译器的默认命令是g++,微软编译器采用命令c1来调用

      1.2  输入/输出

      C++并没有直接定义进行输入或输出的任何语句,这个功能是由标准库提供的,格式化输入和输出的是iostream库,表示输入输出流,流 "说明读入或写出的字符序列是随着时间顺序生成或消耗的  

      大部分操作系统提供了重定向输入或输出流的方法,可以将这些流与选择的文件联系起来,一个表达式由一个或几个操作数和通常是一个操作符组成,每个表达式都会产生一个结果,通常是将操作符作用到其操作数所产生的值,当操作符是输出操作符时,结果是左操作数的值,即输出流本身

      endl 是一个特殊值,称为操纵符,将它写入输出流时,具有换行的效果,并刷新与设备相关联的缓冲区

      程序中,空格符不允许出现在预处理指示中,字符串字面值中的空格符不能用换行符代替

       1.4  控制结构

      按编译错误报告的顺序改正错误是个好习惯,操作系统使用不同的值作为文件结束符,windows系统下我们同时键入"ctrl" 和 "z"键,来输入文件结束符  

      1.5   类的简介

      当使用自定义头文件时,我们采用双引号把头文件括起来,标准库的头文件用尖括号括起来,非标准库的头文件用双括号括起来,点操作符通过它的左操作数取得右操作数,左操作数必须是类类型的对象,右操作数必须指定该类型的成员

      术语:argument(实参),buffer(缓冲区),edit-compile-debug(编辑-编译-调试),bulid-in type(内置类型,如: int ),end-of-file(文件结束符),class type(类类型),curly brace(花括号),library type(标准库类型),manipulator(操纵符,读或写时操纵流本身的对象,比如:endl),parameter list(形参表),string literal(字符串字面值),uninitialized variable(未初始化变量),preprocessor directive(预处理指示,#include是一个预处理器指示)

      第一部分 基本语言 

      基本上所有的语言都提供下列特征:内置数据类型,表达式和语句,变量,控制结构,函数
      C++是静态类型语言,在编译时执行类型检查,C++重要特征是类,程序员可以使用类自定义数据类型,类类型
      C++标准库利用内置类型、自定义类类型,实现了一个具有丰富类类型和相关函数的标准库

      第二章 变量和基本类型

       C++定义了一组算术类型,一种称为void的特殊类型(通常作为无返回值函数的返回类型,void类型没有对应的值)

      8位的块作为一个字节,32位或4个字节作为一个字(word),short类型为半个机器字长,int类型为一个机器字长,long类型为一个或两个机器字长,无符号型只能表示大于或等于0的数,所有的位都表示数值,把负值赋值给unsigned对象是完全合法的,其结果是该负数对该类型的取值个数求模后的值,float型保证6位有效数字,double至少可以保证10位有效数字,char类型通常用来存储字符而不用于计算

      2.2 字面值常量

      定义字面值整数常量可以使用三种进制中的任一种:十进制、八进制、十六进制
      定义长整型时字面常量,应该使用大写字母L,小写的很容易和数值1混淆,定义unsigned类型,在数值后加字母U
      定义浮点字面常量,指数用E,加F表示单精度,加L表示双精度
      布尔字面值:单词true 和 false

      在一行的末尾加一反斜线符号可将此行和下一行当作同一行处理反斜线符号必须是该行的尾字符,不允许其后面有注释或空格  

      2.3 变量

      常常把变量称为"变量" 或 "对象"(object),左值出现在赋值语句的左边或右边,右值只能出现在赋值的右边,对象就是内存中具有类型的区域,计算左值表达式就会产生对象,除了关键字C++标准还保留了一组标识符用于标准库,标识符不能包含二个连续的下划线,也不能以下划线开头后面紧跟字一个大写字母,有些标识符不能以下划线开头 

      变量名一般用小写字母,多个词的标识符每个词之间加一个下划线或每个内嵌的第一个字母都大写
      初始化不是赋值,指创建变量并给它赋初值,赋值则是擦除对象的当前值并用新值代替
      进行初始化的成员函数称为构造函数
      在函数体外定义的内置类型变量都初始化成0在函数体里定义的内置类型变量不进行自动初始化,建议每个内置类型的对象都要初始化

      每个类最好有一个默认构造函数,没有默认构造函数的,每个定义都必须提供显式的初始化
      定义变量时我们声明了它的类型和名字,用于为变量分配存储空间还可以为变量指定初始值,可以通过使用extern关键字声明变量名而不定义它,只有当extern声明位于函数外部时,才可以含有初始化式

      变量必须且仅能定义一次,而且在使用变量之前必须定义或声明变量  

      局部变量屏蔽全局变量,通常把一个对象定义在它首次使用的地方是一个很好的办法
      常量在定义后不能被修改,所以定义时必须初始化,如:const int bufSize = 512;
      在全局作用域声明的 const 变量是定义该对象的文件的局部变量,如果const变量前面加上 extern ,整个程序都可以访问,如 extern const int bufSize = 512;

       非const变量默认为extern,要使const变量能够在其他的文件中访问,必须显式的指定它为extern

      2.5 引用

      引用只是它绑定的对象的另外一个名字,当引用初始化后,只要该引用存在,它就保持绑定到初始化时指定的对象,不可能将引用绑定到另外一个对象

      const 引用是指向const对象的引用,如:const int ival = 1024; const int &refVal = ival;,又如:const int &refVal = 1024;,const引用可以绑定到不同但相关的类型的对象或绑定到右值

      2.7 枚举成员是常量

      用来初始化枚举成员的值必须是一个常量表达式,如:enum Weapon { ARROW = 1, SWORD, BOMB },常量表达式是编译器在编译时就能够计算出结果的整形表达式整形字面常量是常量表达式

      枚举成员可以初始化枚举类型的对象,如:Weapon  warriorWeapon = ARROW;

      2.8 类类型

      默认情况下,struct 的成员为public,而class的成员为private

       2.9 预处理器的简单介绍

      头文件应该含有保护符,即使这些文件不会被其他头文件包含,避免头文件包含多次

      如:
      #ifndef SALESITEM_H
      #define SALESITEM_H
      //...
      #endif 

      每种类型都定义了其存储空间要求和可以在该类型的所有对象上执行的操作,类型可以为const或非const

      术语:access label(访问标号,如,public),arithmetic type(算术类型),direct-initialization(直接初始化),enumeration(枚举),enumerator(枚举成员),const reference(const引用)constant expression(常量表达式),escape sequence(转义字符),global scope(全局作用域),header guard(头文件保护符),implementation(实现),preprocessor(预处理器),liter constant(字面值常量),separate compilation(分别编译)

      第三章 标准库类型 

      标准库类型 string、vector 分别定义了大小可变的 字符串 和 集合,迭代器作为配套类型,标准库类型 bitset,提供了一种抽象方法来操作位的集合,标准库定义了许多高级抽象数据类型,我们在使用时不必关心它们如何表示,只需知道这些抽象数据类型支持哪些操作就可以了

      3.1 命名空间的using 声明

      using 声明可以在不需要加前缀namspace_name::的情况下访问命名空间中的名字,如,using std::string,之后就不需要加std::前缀直接使用string,要用到的每一个名字都要提供一个using 声明

      3.2标准库string类型

      string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作,字符串字面值与标准库string类型不是同一种类型

    string对象可以用string对象、字符串字面值、单个字符、const char* 赋值

      string 类型的输入操作符 >>,读取并忽略开头所有的空白字符,读取字符直至再次遇到空白字符,读取终止,该操作符返回所读的istream对象,在<string>中的getline函数,istream& getline (istream&& is, string& str); 读取的内容不包括换行符,可以读取空格,遇到换行符停止读入并返回,getline函数返回时丢弃换行符,换行符将不会存储在string对象中

      任何存储string的size操作结果的变量必须为string::size_type类型,特别重要的是,不要把size的返回值赋给一个int变量,string::size_type与unsigned型具有相同的含义

      3.3标准库 vector类型


      3.4迭代器


      3.5标准库 bitset类型

  • 相关阅读:
    windows10远程桌面慢的解决
    linux挂载windows共享盘
    ORACLE 临时表空间满了的原因解决方案
    oracle临时表空间扩容
    expdp/impdp 数据泵导入导出
    Oracle Awr报告_生成
    mysql备份与保存
    oracle lsnrctl监听器多实例配置
    RabbitMQ
    docker stop 容器时 不能将我指定的容器停掉
  • 原文地址:https://www.cnblogs.com/GoldenEllipsis/p/15787376.html
Copyright © 2011-2022 走看看