2020年,给自己定一个新目标————开始写技术博客,将之前所学的内容重新复习并整理成一系列的文章,一来可以让自己对这些基础知识更加熟悉,二来方便于以后的复习查阅。

  以前自己都是以笔记的形式将知识点记录在有道云笔记中,这样可能造成由于时间紧或者懒,只是记录了笔记,没有去深刻的理解。所以乘着这次全面复习的机会,把基础知识都整理成文章的形式,对各个知识点加深理解,耗时可能比较长,但是一定要坚持。

  本系列文章为C++知识的集合,我想结合《C++ Primer》、《STL源码剖析》、《深度探索C++对象模型》、《Effective C++》、《More Effective C++》这5本书,从易到难地把C++知识点整理一遍。

  首先,从输入/输出开始,简单地认识一下C++:

#include <iostream>

int main()
{
std::cout << "Enter two numbers: ";
int num1, num2;
std::cin >> num1 >> num2;
std::cout << "The sum is: " << num1 + num2 << std::endl;
return ;
}

  这段代码的作用就是:输入两个整数,输出它们的和。 

  头文件iostream包含了该程序需要使用到的输入流(istream)和输出流(ostream),而cin、cout为输入、输出的对象,endl是一个被称为操纵符(manipulator)的特殊值,输出它的作用就是结束当前行,并且刷新缓冲区。

  缓冲刷新操作可以保证到目前为止,程序所产生的所有输出都真正写入输出流中,而不是仅停留在内存中等待写入流,这在日志系统中很有用。

  前缀std::指出这些名字(cin、cout、endl)是定义在名为std的命名空间(namespace)中的。

  试想,如果输入的不是整数,而是字符,会发生什么呢?答案是,流会失效,后面写到标准IO库时再细说。

  在《Effective C++》中,如是说,C++已是一个多重范型的编程语言,同时支持过程形式(procedural)、面向对象形式(object-oriented)、函数形式(functional)、泛型形式(generic)、元编程形式(metaprogramming)。

  使用C++最简单的方法就是将C++看作一个由相关次语言组成的联合,分为四个次语言:

  • C  C++仍是以C为基础
  • Object-Oriented C++  也就是C with classes,包括构造/析构,封装(encapsulation),继承(inheritance),多态(polymorphism)
  • Template C++  C++泛型编程(generic programming)部分,模板元编程(template metaprogramming, TMP)
  • STL  对容器(containers)、迭代器(iterators)、算法(algorithms)以及函数对象(function objects)的规约有极佳的紧密配合与协调

  本系列文章也将围绕这4个部分来详细地介绍C++。

从零开始学C++(0 简介)的更多相关文章

  1. Java从零开始学零(Java简介)

    一.Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年 ...

  2. 从零开始学JavaScript一(简介)

    概要:JavaScript的组成. 各个组成部分的作用 .   一.JavaScript是一种专为与网页交互而设计的脚本语言,它的的组成  Javascript  ECMAScript(核心) DOM ...

  3. (0)资料官网【从零开始学Spring Boot】

    Spring Boot官网:http://projects.spring.io/spring-boot/ Eclipse官网:http://www.eclipse.org/ Maven官网:http: ...

  4. (0)前言【从零开始学Spring Boot】

    在此对整体技术简单说明下. 开发工具和开发环境: Win7 64位操作 Eclipse-jee-mars-2-win32-x86_64 Jdk 1.8 Maven管理项目 如果要学习Spring Bo ...

  5. 从零开始学 Web 之 Vue.js(四)Vue的Ajax请求和跨域

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  6. 从零开始学 Web 之 HTML5(一)HTML5概述,语义化标签

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  7. 从零开始学 Web 之 CSS3(一)CSS3概述,选择器

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  8. 从零开始学 Web 之 移动Web(三)Zepto

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  9. 从零开始学 Web 之 ES6(三)ES6基础语法一

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  10. MSDN Webcast 跟我一起从零开始学WCF系列课程

    系列课程 >跟我一起从零开始学WCF系列课程   跟我一起从零开始学WCF系列课程(1):WCF概述 (Level 200)   讲 师:徐长龙    课程简介:从 本堂课开始我们将开启一个新的 ...

随机推荐

  1. CSP-S 2019 初赛游记

    Day 0 上午考了一套毒瘤的数据结构题,考的我心态爆炸SB出题人 晚上考了一套初赛模拟,只考1h,然后我91分,感觉初赛完全没问题? 回寝室后一直在忙活,整理东西什么的,居然将近12点睡? Day ...

  2. 在linux命令行无界面下,使用selenium进行自动化测试

  3. JavaScript图形实例:正弦曲线

    正弦曲线的坐标方程为: Y=A*SIN(X)    (A为振幅) 1.正弦曲线 在弧度为0~4π的正弦曲线上取360个点,将这些点用线连接起来,可以绘制出正弦曲线.编写如下的HTML代码. <! ...

  4. JS中的原始类型和判断方法

    ECMAScript 中定义了 7 种原始类型: Boolean String Number Null Undefined Symbol(新定义) BigInt(新定义) 注意: 原始类型不包含 Ob ...

  5. 077、Java数组之分步实现数组操作

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  6. Linux下如何拷贝整个目录下的所有文件

    分类: Linux使用2014-01-14 13:38 1449人阅读 评论(0) 收藏 举报 如何在Linux下拷贝一个目录呢?这好像是再如意不过的问题了.比如要把/home/usera拷贝到/mn ...

  7. centos 下yum 安装nginx

    centos 下yum 安装nginx 1. 直接yum install nginx不行,要先处理下源: rpm -ivh http://nginx.org/packages/centos/6/noa ...

  8. 前端学习(20)~css布局(十三)

    常见的布局属性 (1)display 确定元素的显示类型: block:块级元素. inline:行内元素. inline-block:对外的表现是行内元素(不会独占一行),对内的表现是块级元素(可以 ...

  9. Docker + Maven + Docker-compose

    前言: docker:容器化管理 maven:支持docker-maven的插件,通过 mvn clean -Dmaven.test.skip package dockerfile:build 打包命 ...

  10. OBU设备非接触式读卡方案:SI522

    传统收费站将成历史!全部转为ETC系统 当高速人工收费已经成为我们驾驶出行的习惯后,我们发现,高速人工收费带来低效率.长等待以及落后性等缺点逐渐给人们出行带来不便.伴随着我国汽车保有量的逐年递增,高速 ...