Young87

当前位置:首页 >个人收藏

大白话C++:新手入门教程(附源码及详解、视频课程资料推荐)


持续更新……

C++教程

首发于2020/3/14

更新开始于2021/2/6,改名以及补充,原名:C++新手基础教程,必备!必看!最全手写教程

前言

​ C++是一门古老的语言,C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。看得懂看,看不懂跳过😃

我会尽量讲的简单一些😺,在这里尽微薄之力帮助更多人在闲暇时间看一看学学C++的知识。

​ C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

  • 中文名:C++语言

  • 外文名:The C++ Programming Language/c plus plus

  • 类 别:计算机程序设计语言

  • 创始人:Bjarne Stroustrup

  • 创始公司:贝尔实验室

  • 基本内容:类、封装、重载、继承、模版

​ 世界上第一种计算机高级语言是诞生于1954年的FORTRAN语言。之后出现了多种计算机高级语言。1970年,AT&T的Bell实验室的D.Ritchie和K.Thompson共同发明了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,它实际上是UNIX的“副产品”。它充分结合了汇编语言和高级语言的优点,高效而灵活,又容易移植。

视频教程

BTW:如果想入门C++,可以点下面这个网站看视频教程,我当初就是跟他们的老师入门的。

http://www.csai.online/course/explore/B02

在这里插入图片描述

文字教程

推荐两个比较好的教程网站

w3cschool:https://www.w3cschool.cn/cpp/

runoob菜鸟教程:https://www.runoob.com/cplusplus/cpp-intro.html

集成开发环境(IDE)

​ 编写程序需要工具,代码需要有不同的颜色,叫代码高亮,大体有两种工具——文本编辑器和IDE,文本编辑器就是只提供代码高亮,工具较少,所以下载大小比较小。通常有Notepad++、EMACS、Vim、sublime Text2和Xcode等。但是IDE的功能就全面了,对于开发人员来说,IDE对于开发的帮助是巨大的。

Visual Studio (Visual C++)

C++ Builder

kDevelop

Anjuta

Code::Blocks——开放源码的全功能的跨平台C/C++集成开发环境 。

Visual Mingw

Ideone

Eclipse CDT

Compilr

Code Lite

Netbeans C++

上面就是一个个IDE,我最常用的是Visual Studio。

编译器

​ 编译器是为了让计算机读懂代码的工具,必须下载。

Dev C++

Ultimate++

Digital Mars

C-Free

MinGW

Tiny C Compiler

工作原理

​ C++语言的程序因为要体现高性能,所以都是编译型的。但其开发环境,为了方便测试,将调试环境做成解释型的。即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。

学习指南

入门书籍

《C++程序设计教程》,钱能

《易学C++》,潘嘉杰

《大话设计模式》,程杰

《C++编程规范:101条规则、准则与最佳实践》,刘基诚

《C和C++程序员面试秘籍》,董山海

进阶书籍

《C++程序设计语言》英文第四版,Bjarne Stroustrup

《C++ Primer 第5版(英文版)》,Stanley Lippman、Josee Laoie、Barbara Moo

《C++标准库:自学教程与参考手册(第2版)(英文版)》,Nicolai Josuttis

《C++ Concurrency in Action|C++ 并发实战》,Anthony Wiliams

《C和C++安全编码(第2版)(英文版)》,Robert Seacord

《C++ Primer Plus》

算法、竞赛书籍

《数据结构与算法分析,C语言描述》[美]马克·艾伦·维斯 著

《数据结构(C语言版)》 清华大学出版社

《算法竞赛 入门到进阶》 清华大学出版社

教程

标准构建

#include <iostream>
using namespace std;
int main(){
    return 0;
}

上面的程序是一个标准的c++程序,什么都不干。

程序解释

​ 第一句:#include <iostream>是一个预处理语句,在#include后面可以调用c++标准库,基础的c++程序定义一个iostream是标准输入输出流,第二行using namespace std;可以先不用管,只要记住就行。后面的int main()是定义一个函数,int是返回值类型,main() 是函数名,以后将自定义函数的时候会仔细讲,main()主函数,不可以改名!后面的{}一对大括号括起来的地方就是你写代码的地方了。return 0;是代表程序结束的地方,叫返回值,返回值的默认值是0,不可以改!

第一个C++程序——“hello world”

​ 我们弄明白了标准构建就可以写带有功能的代码了😜,这种代码叫做源代码。任何语言的第一步都是输出“hello world”,C++也一样,让我们开始吧?!

写代码前先得有一个IDE或者文本编辑器
新手我建议使用Dev-Cpp,因为Dev-Cpp有自带编译器,不用下载编译器了,😜

#include <iostream>
using namespace std;
int main() {
    cout << "hello world" << endl;
    return 0;
}

把这段代码写下来

编译

​ 编译是什么?是把你写出的代码转化成电脑💻可以读懂的代码。首先会转成汇编,再转成机器码,计算机就明白了。
怎么编译?(用Dev-Cpp)

在这里插入图片描述

这是你的代码对不对?

​ 然后按上图的灰色片可以新建源代码,黄色的是保存,保存你的代码到你想保存的位置,往右看🙈看到一个四格格的图标,是编译,点击会弹出一个框,如下图,等它停下来就编译完成,点击编译左边的另一个灰色片片,点击就运行了,如果想简单点,直接点击运行右边的编译运行,就一体化了。

运行后弹出一个黑色的框,输出“hello world”,成功!💪


​ 这个代码只有一个新的地方cout << “hello world" << endl;,我们分析一下,cout是什么意思?cout是输出到控制台(终端),<<是输出流符号,""这是代表字符串,输出一个hello world的字符串,最后endl是回车的意思,输出换行,最后分号;每行都要有;

C++基础语法

输入与输出

尽管C和C++已经很相似了,不过还是有略微差别……

C++风格

c++的输入与输出相对简单,但是有些功能会缺失,所以c++中也支持C语言的输入与输出

实例:

#include <iostream>
using namespace std;
int main(){
    int aNum;
    cin >> aNum;
    cout << "aNum:" << aNum << endl;
    return 0;
}

​ 程序第一行的#include <iostream>大家都还记得吧?这个iostream就是为了cin和cout,当然还有其他功能,都是相对高级,所以这里不说🙂,第4行定义了一个整形变量aNum,下面有讲解变量,第5行cin是输入标识符,>>是输入流符号,cout是输出标识符,<<是输出流符号。简单吧

C风格

C风格的相对难些,不过应该可以看懂,C风格的输入输出补全了C++的一些(cout,cin)小问题。

实例(C语言):看得懂看,看不懂跳过

int aNum;
scanf("%d", &aNum);
printf("%d\n", aNum);

结果:

输入:
5
输出:
5

应该可以看出来,scanf是输入,printf是输出,“”双引号内是确定输出格式的语句,,后面就是输出中切入的变量参数。看不懂可以跳过,参考:菜鸟教程<-想学的话猛戳

变量

C++中可以有变量

全局变量

​ 全局变量顾名思义,整个文件可用,通常用来声明常量,定义位置:命名空间(using namespace std;)下面,具体方法见下面实例:

#include <iostream>
using namespace std;
int n = 10;
void out(){
    cout << n << endl; //自定义函数,下面讲
    //函数中可用
}
int main(){
    cout << n << endl;//every where可用
    return 0;
}

懂了吧

局部变量

有是顾名思义

#include <iostream>
using namespace std;
void func(){
    cout << n << endl;//报错,找不到n
}
int main(){
    int n = 10;
    cout << n << endl;
}
常量

还是顾名思义,常量就是不能改变的量,用保留字const定义,实例:

#include <iostream>
using namespace std;
const int an = 100;
int main(){
    //常量可以定义在任何地方
    cout << an << endl;//输出100
    const long long int aln = 200;
    cout << aln << endl;//输出200
    aln = 100;//报错,不可篡改常量
    return 0;
}

注释

​ 程序中适当的注释可以美化程序,使得程序更加清晰,简单明了,C++同样支持注释,下面来介绍一下,C++的注释一共有两种:单行注释多行注释,单行注释用//双斜杠表示,多行注释用一对单斜杠+星号/**/实现,编译器会自动跳过注释,不编译注释,注释是给人看的

实例:

#include <iostream>
//
using namespace std;//命名空间——单行注释

int main(){
    /*
    programer:thomas
    date:2020****
    "hello world"
    */
    return 0;
}

C++关键字、保留字

C++关键字
asmdoifreturntypedef
autodoubleinlineshorttypeid
booldynamic_castintsignedtypename
breakelselongsizeofunion
caseenummutablestaticunsigned
catchexplicitnamespacestatic_castusing
charexportnewstructvirtual
classexternoperatorswitchvoid
constfalseprivatetemplatevolatile
const_castfloatprotectedthiswchar_t
continueforpublicthrowwhile
defaultfriendregistertrue
deletegotoreinterpret_casttry

上表格是C++的所有关键字、保留字
关键字不可作为变量名、函数名等等,它们是固定的。

先不着急讲,以后再说,有些我都不知道。🙌

C++数据类型

C++含有很多的数据结构

数字类型

C++的数字类型有整形浮点型两种,先知道这两种。

整形

​ 整形,顾名思义是存储整数的类型,用整形声明的变量可以存储整数,来看一个实例:

#include <iostream>
using namespace std;
int main(){
    short aNum_short;
    int aNum_int;
    long long aNum_long;
    cin >> aNum_short;
    cin >> aNum_int;
    cin >> aNum_long;
    cout << aNum_short << " " << aNum_int << " " << aNum_long << endl;
    return 0;
}

运行结果

输入:

5 6 7

输出:

5 6 7

解析:

用int类型定义了一个变量aNum,输入aNum为5,输出aNum为5,很简单对不?:happy:

难的以后再说。

整形还有两个类型,一个short int和long int,和unsigned都是顾名思义,短整形和长整形。

名称所占字节数取值范围
short[int]2-32768~32767
unsigned short[int]20~65535
int4-2147483648~2147483647
unsigned int40~4294967295
long long8-263~263-1
unsigned long long80~264-1

如果数据比较小,就用short,正常数据还是用纯int,要是用比较大的数据,用long long int,能存储的范围大,unsigned是无符号的意思,就是无号,unsigned long long的数据值可以翻倍!你们自己可以试试264是多少,unsigned用法详见

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 如何创建一个网站?初学者的分步指南

下一篇: Windows弱爆了!Linux才是程序员的首选!真的好用!

精华推荐