Loading

Chapter 1 内容梳理


image-20220108102348492

程序的编译与执行

编译环境

  • IDE
  • 命令行

程序的编译

  • g++ filename : 不指定生成的执行文件名,默认命名为 “a.out”
  • g++ -o exename filename : 指定生成的执行文件名

程序的执行

filename

  • ./exename : use relative path [相对路径]
  • .../exename : use absolute path [绝对路径]
  • 注:必须加路径,直接执行是无效的【这与Shell脚本不同】

标准输入与标准输出

例程导入

//从标准输入读取 v1,v1 ,从标准输出打印求和结果
#include<stdio.h>
#include<iostream>
int main(){
    std::cout<<"Enter two operands"<<std::endl;
    int v1=0,v2=0;
    std::cin>>v1>>v2;
    std::cout<<"the sum of "<<v1<<" and "<<v2<<" is "<<v1+v2<<std::endl;
    return 0;
}

标准输入与输出对象

  • 输入
    • cin:标准输入对象【内容进入缓存区】
  • 输出
    • cout:标准输出对象【内容进入缓存区】
    • cerr:一般用以输出程序错误与警告【内容不进入缓冲区】
    • clog:一般用以输出执行时的相关信息【内容进入缓存区】
  • 标准输入与输出对象都与控制台相关联

输入与输出符号详解

<<和>>本来表示左移和右移,但在iostream头文件中,被重载为函数
cout << "hello world"
cin >> v1

函数角度理解【用函数的副作用】

  • 参数
    • cout : ostream 对象
    • “hello world” : 一个定值
  • 输出
    • ostream对象的引用, 等价于 ostream对象
    • 这是cout可以链式使用的原因
  • 副作用 : 把定制赋给ostream对象,并输出到控制台【标准io】

运算符角度理解

  • 左值 : ostream对象
  • 右值 :一个定值
  • 效果 :把定值赋给osteam对象,并把值输出到控制台
  • 注:可以链式使用

定位符号(scope operator)

  • 作用:解决同名冲突
  • std::cout表示cout是在std命名空间(namespace)里的函数
  • 命名空间可以在头文件之后指定using namespace std;,这样在写cout时就不用加上std::

换行符号(endl)

  • 表示换行
  • 清空缓冲区【全部输入到ostream对象中】

如何输入EOF

  • window : 换行——输入ctrl+z——换行
  • unix:换行——输入ctrl+d——换行
  • image-20220107165407117

类,类型,成员,对象,变量等概念间的关系

类型(type)与类(class)

  • 类型(type):声明了一种数据结构,包括数据以及对数据的操作
    • 固有类型(build-in type):语言本身支持的类型,如int,char
    • 自定义类型:程序设计者自己定义的类型(OOP特有)
  • 类(class):
    • 在C++中,用户实现自定义类型的机制。支持用户自己指定数据成员以及操作,来实现自定义类型。
    • 用类机制实现的自定义类型称为类类型(class type)
  • 关系

成员

  • 在固有类型中,定义了数据与对数据的操作
  • 成员是类类型中,对数据对数据的操作这两个概念的映射
    • 数据——>成员
    • 对数据的操作——>成员函数

对象与变量

同上,二者是同级概念,为映射关系

  • 类型(type)的实例化称为变量【int i 表示 i 是 int 类型的变量】
  • 类类型(class type)的实例化为对象【Sale_Item it 表示 it 是一个 Sale_Item对象】

关系图

image-20220108101409668

posted @ 2022-01-08 10:35  咪啪魔女  阅读(31)  评论(0编辑  收藏  举报