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. python3爬虫

    1.爬虫的基本原理讲解 2.Urllib库的基本使用 3.Requests库的基本使用 4.正则的基本使用 5.BeautifulSoup库的使用 6.PyQuery库的使用   √ 7.Seleni ...

  2. 初识PromQL

    初识PromQL Prometheus通过指标名称(metrics name)以及对应的一组标签(labelset)唯一定义一条时间序列.指标名称反映了监控样本的基本标识,而label则在这个基本特征 ...

  3. Django:验证email或者name是否已被注册

    灵感: http://blog.csdn.net/xxm524/article/details/48369623 使用表单的dajngo的clean()方法实现

  4. R语言作图 绘制中国地图

    参考:https://zhuanlan.zhihu.com/p/27360411 第一步.下载shapefile文件 一直都没有找到下载地址,死在了第一步 第二步.导入shp文件 第三步.画图

  5. Metasploit学习笔记——强大的Meterpreter

    1. Meterpreter命令详解 1.1基本命令 使用Adobe阅读器渗透攻击实战案例打开的Meterpreter会话实验,靶机是WinXP.由于所有命令与书中显示一致,截图将书中命令记录下来. ...

  6. 【富文本、JS】将接口传来的全部纯URL替换为富文本插件能识别到的img标签

    replaceURLWithImage (text) { var a = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0 ...

  7. 使用Hibernate+MySql+native SQL的BUG,以及解决办法

      本来是mssql+hibernate+native SQL 应用的很和谐 但是到了把mssql换成mysql,就出了错(同样的数据结构和数据). 查询方法是: String sql = " ...

  8. CTE With as 递归调用

    WITH AS的含义   WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会 被整个SQL语句所用到.有的时候,是为了 ...

  9. k-近邻算法原理入门-机器学习

    //2019.08.01下午机器学习算法1——k近邻算法1.k近邻算法是学习机器学习算法最为经典和简单的算法,它是机器学习算法入门最好的算法之一,可以非常好并且快速地理解机器学习的算法的框架与应用.2 ...

  10. Jquery动画效果设置大全

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...