从零开始学C++(0 简介)
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 简介)的更多相关文章
- Java从零开始学零(Java简介)
一.Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年 ...
- 从零开始学JavaScript一(简介)
概要:JavaScript的组成. 各个组成部分的作用 . 一.JavaScript是一种专为与网页交互而设计的脚本语言,它的的组成 Javascript ECMAScript(核心) DOM ...
- (0)资料官网【从零开始学Spring Boot】
Spring Boot官网:http://projects.spring.io/spring-boot/ Eclipse官网:http://www.eclipse.org/ Maven官网:http: ...
- (0)前言【从零开始学Spring Boot】
在此对整体技术简单说明下. 开发工具和开发环境: Win7 64位操作 Eclipse-jee-mars-2-win32-x86_64 Jdk 1.8 Maven管理项目 如果要学习Spring Bo ...
- 从零开始学 Web 之 Vue.js(四)Vue的Ajax请求和跨域
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- 从零开始学 Web 之 HTML5(一)HTML5概述,语义化标签
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- 从零开始学 Web 之 CSS3(一)CSS3概述,选择器
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- 从零开始学 Web 之 移动Web(三)Zepto
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- 从零开始学 Web 之 ES6(三)ES6基础语法一
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- MSDN Webcast 跟我一起从零开始学WCF系列课程
系列课程 >跟我一起从零开始学WCF系列课程 跟我一起从零开始学WCF系列课程(1):WCF概述 (Level 200) 讲 师:徐长龙 课程简介:从 本堂课开始我们将开启一个新的 ...
随机推荐
- super与this无法用在static方法中
更新记录 [1]2020.02.08-10:32 1.主要编辑了super 正文 我原本是在学习\(super\)关键字,后来突发奇想,能不能在父类中用\(super\)间接调用本类方法呢? 也就是说 ...
- 设计模式课程 设计模式精讲 12-2 适配器模式coding
1 重要 1.1 类适配器和对象适配器最大的区别 2 代码演练 2.1 代码演练1(类适配器模式) 2.2 代码演练2(对象适配模式) 2.3 代码演练3(具体应用场景) 1 重要 1.1 类适配器和 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:"text-danger" 类的文本样式
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- mathematica练习程序(第一章 Mathematica的基本量)
虽然过去有用Mathematica解过一些问题,不过对这个语言并没有系统学习过. 所以最近想重新把Mathematica系统的学一遍. 偶然在B站上找到了这样一组教程:https://www.bili ...
- MyBatisPlus代码生成 mvc项目
package com.test; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus ...
- Day9 - D - Piggy-Bank POJ - 1384
Before ACM can do anything, a budget must be prepared and the necessary financial support obtained. ...
- Lesson 47 The great escape
What is one of the features of modern camping where nationality is concerned? Economy is one powerfu ...
- LoadRunner监控Linux系统
需要下载3个包: 地址链接:链接:https://pan.baidu.com/s/1lltAa6JnjJ7Mr88duixUSQ 密码:5yiw(1)rsh-0.17-14.i386.rpm (2) ...
- VMware Tools 组件、配置选项和安全要求
- nodejs配置 https服务
const port = normalizePort(process.env.PORT || '3000'); const path = require('path'); const https = ...