程序的编译与执行

编译环境

  • 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——换行

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

类型(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对象】

关系图

Chapter 1 内容梳理的更多相关文章

  1. JavaScript内容梳理 示例之模态对话框 示例之全选和反选以及取消 示例之后台管理左侧菜单

    <!DOCTYPE html> <!--示例之模态对话框--> <html lang="en"> <head> <meta c ...

  2. 老男孩最新Python全栈开发视频教程(92天全)重点内容梳理笔记 看完就是全栈开发工程师

    为什么要写这个系列博客呢? 说来讽刺,91年生人的我,同龄人大多有一份事业,或者有一个家庭了.而我,念了次985大学,年少轻狂,在大学期间迷信创业,觉得大学里的许多课程如同吃翔一样学了几乎一辈子都用不 ...

  3. 巨蟒django之权限10,内容梳理&&权限组件应用

    1.CRM项目内容梳理: 2.权限分配 3.权限组件的应用

  4. DOM内容梳理2

    JavaScript-DOM2(内容整理) 这两天新的知识有点多有点杂一时半会没有整理过来,以后不出意外会一直更行. js节点类型(NODETYPE) 查看节点类型 nodetype属性,返回的结果会 ...

  5. JVM内容梳理

  6. python基础知识梳理-----7函数

    基本内容梳理 1:函数定义,函数名,函数体以及函数的调用方式 2:函数的返回值 3:函数的参数 4:函数---动态传参数 5:名称空间,局部名称的加载顺序,全局名称空间,作用域,加载顺序 6:函数的嵌 ...

  7. 两万字长文总结,梳理 Java 入门进阶那些事

    大家好,我是程序员小跃,一名在职场已经写了6年程序的老程序员,从一开始的菊厂 Android 开发到现在某游戏公司的Java后端架构,对Java还是相对了解的挺多. 大概是半年前吧,在知乎上有个知友私 ...

  8. Spring到底应该学哪些内容?

    大家好,我是冰河~~ 说实话,「Spring注解系列」这个专题的内容是去年开始更新的,期间,基本上已经更新完IOC容器相关的内容了.在即将更新AOP相关的内容时,由于种种原因吧,也有很多小伙伴在微信上 ...

  9. 虾皮工作室QQ群列表

    各位博友: 本群不仅仅是提供好的资料,更重要是提供平台,提供解决问题的方法和思路.求人不如求己,掌握合理的方法和方式才是不断进步的根本.看我的文档,不单单是看内容,更应该从整理的方式和角度是深思,去想 ...

  10. 到底怎么样才叫看书?——Tony Zhao's

    到底怎么样才叫看书?——上篇 目录: 一.引入 二.经历了就能理解 三.读书要分级 四.只读经典 五.别吝惜你动笔的那点时间 一.引入 看到这个题目的时候你可能会感到有点好笑:“这还用问,看书就是把书 ...

随机推荐

  1. 信创环境:鲲鹏ARM+麒麟V10离线部署K8s和Rainbond信创平台

    在上篇<国产化信创开源云原生平台>文章中,我们介绍了 Rainbond 作为可能是国内首个开源国产化信创平台,在支持国产化和信创方面的能力,并简要介绍了如何在国产化信创环境中在线部署 Ku ...

  2. 倾斜摄影osgb格式文件,进行坐标转换

    倾斜摄影OSGB格式的文件,很棘手,今天需要把osgb放到UE中渲染.碰到的问题如下: 1.osgb文件导进去后,Z轴不想上,是歪的,小人放进去后,就斜站在马路上. 2.根本原因是坐标系,UE的插件c ...

  3. 编译器实现之旅——第十三章 if语句和while语句的代码生成器分派函数的实现

    在上一章的旅程中,我们已经实现了表达式类代码生成器分派函数,而在这一章的旅程中,我们将要实现if语句和while语句的代码生成器分派函数.if语句和while语句是两种典型的带有跳转指令的语句.观察C ...

  4. Python 潮流周刊#67:uv 的重磅更新(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  5. how to log iptables events

    warning level: iptables -A INPUT -j LOG --log-prefix "BAD_INPUT: " --log-level 4 iptables ...

  6. [Udemy] AWS Certified Data Analytics Specialty - 2.Storage

    S3 Replication (CRR & SRR) S3 Encryption S3 Security 其中两个ACL基本不会考 记住这3个event发送的target DynamoDB D ...

  7. 记一次 公司.NET项目部署在Linux环境压测时 内存暴涨分析

    一:背景 讲故事 公司部署在某碟上的项目在9月份压测50并发时,发现某个容器线程.内存非正常的上涨,导致功能出现了异常无法使用.根据所学,自己分析了下线程和内存问题,分析时可以使用lldb或者wind ...

  8. Nodejs+npm详细安装

    Nodejs详细安装步骤1.去官网下载nodejs,下载地址:https://nodejs.org/en/download/ 根据自己要求下载,我这里下载的是windows installer的. 2 ...

  9. C++ STL(标准模版库)—— vector 与 迭代器

    STL 基本概念 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称. STL 从广义上讲分为三类:algorithm(算法).containe ...

  10. mac M1,M2,M3芯片踩坑 nodejs ruby brew

    问题&解决方法 先说解决方法, 感兴趣的可以了解事情的经过, 也许我描述的问题不专业, 但确实解决了当下的问题, 欢迎留言讨论 这里主要是两个问题, 一个是启用rosetta模式失败, 一个是 ...