您的位置:首页 > 房产 > 建筑 > C++菜鸟教程 - 从入门到精通 第一节

C++菜鸟教程 - 从入门到精通 第一节

2024/12/23 15:20:36 来源:https://blog.csdn.net/C_User1024/article/details/141183069  浏览:    关键词:C++菜鸟教程 - 从入门到精通 第一节

一.C++简介

C++ 是一种编程语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Windows、MAC 操作系统以及 UNIX 的各种版本。

C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。

C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。

C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。

C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。

注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。

面向对象程序设计

C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:

  • 封装(Encapsulation):封装是将数据和方法组合在一起,对外部隐藏实现细节,只公开对外提供的接口。这样可以提高安全性、可靠性和灵活性。

  • 继承(Inheritance):继承是从已有类中派生出新类,新类具有已有类的属性和方法,并且可以扩展或修改这些属性和方法。这样可以提高代码的复用性和可扩展性。

  • 多态(Polymorphism):多态是指同一种操作作用于不同的对象,可以有不同的解释和实现。它可以通过接口或继承实现,可以提高代码的灵活性和可读性。

  • 抽象(Abstraction):抽象是从具体的实例中提取共同的特征,形成抽象类或接口,以便于代码的复用和扩展。抽象类和接口可以让程序员专注于高层次的设计和业务逻辑,而不必关注底层的实现细节。

标准库

标准的 C++ 由三个重要部分组成:

  • 核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。
  • C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
  • 标准模板库(STL),提供了大量的方法,用于操作数据结构等。

ANSI 标准

ANSI 标准是为了确保 C++ 的便携性 —— 您所编写的代码在 Mac、UNIX、Windows、Alpha 计算机上都能通过编译。

由于 ANSI 标准已稳定使用了很长的时间,所有主要的 C++ 编译器的制造商都支持 ANSI 标准。

学习 C++

学习 C++,关键是要理解概念,而不应过于深究语言的技术细节。

学习程序设计语言的目的是为了成为一个更好的程序员,也就是说,是为了能更有效率地设计和实现新系统,以及维护旧系统。

C++ 支持多种编程风格。您可以使用 Fortran、C、Smalltalk 等任意一种语言的编程风格来编写代码。每种风格都能有效地保证运行时间效率和空间效率。

C++ 的使用

C++ 语言在许多行业和领域都有广泛应用,包括:

  • 游戏开发:C++ 是游戏开发领域中最常用的编程语言之一,因为它具有高效的性能和直接控制硬件的能力。许多主要的游戏引擎,如 Unreal Engine 和 Unity,都使用 C++ 编写。

  • 嵌入式系统开发:C++ 可以在嵌入式系统中发挥重要作用,如智能手机、汽车、机器人和家电等领域。由于嵌入式系统通常具有严格的资源限制和实时要求,因此 C++ 的高效性能和内存控制功能非常有用。

  • 金融领域:C++ 在金融领域中被广泛应用,如高频交易、算法交易和风险管理等领域。由于这些应用程序需要高效的性能和对硬件的直接控制,C++ 语言是一个合适的选择。

  • 图形图像处理:C++ 可以用于开发图形和图像处理应用程序,如计算机视觉、计算机图形学和人工智能领域。由于这些应用程序需要高效的计算能力和对硬件的控制,因此 C++ 是一个很好的选择。

  • 科学计算和数值分析:C++ 可以用于开发科学计算和数值分析应用程序,如数值模拟和高性能计算等领域。由于这些应用程序需要高效的计算能力和对硬件的直接控制,C++ 语言是一个很好的选择。

二.C++环境设置 

对于初学者来说,RedPanda(小熊猫)是不错的

RedPanda下载

链接:下载

下载说明

  • Win11用户注意: 如果下载的安装程序被提示有病毒,请下载绿色版。
  • Windows下载注意:
    • 目前小熊猫C++最低要求windows 7操作系统
    • 从2.26版本开始,尝试提供Windows XP支持(感谢cynao.CN网友),可在百度网盘下载。
    • 32位windows系统用户请下载win32版本;64位windows系统用户请下载win64版本。
    • 安装版需要安装后使用绿色版解压后直接运行RedPandaIDE.exe即可使用(推荐使用7zip软件解压)。
    • 由于clang编译器(llvm-mingw项目)在中文编码支持、调试等方面存在诸多问题,不适合新手使用,不符合小熊猫C++作为新手IDE的定位,因此从1.1.2版起不再提供集成clang编译器的版本下载。
  • 需要使用自带ege、海龟作图、freeglut/glew/glfw、raylib库的用户注意:
    • 请下载带编译器的版本,因为这些库是直接集成在编译器中的。
    • 可直接以单文件方式编译运行使用这些库C/C++程序文件,无需修改编译器设置
    • 如果需要在项目中使用这些库,可以在创建项目时使用小熊猫C++中提供的项目模板
    • 2.23版开始,EGE对应的项目模板由“多媒体”→“Graphics.h”改为“多媒体”→“EGE绘图”
  • Linux下载注意:
    • Debian 11用户请下载-debian11-版本
    • 深度操作系统20版以上用户请下载-deepin20-版本
    • ubuntu 20.04版用户请下载-ubuntu20-版本
    • 可直接在shell中使用sudo apt install “deb文件完整路径"命令安装
    • Linux版本均不包含编译器。在使用apt命令安装时会自动gcc和gdb
  • MacOS下载注意:
    • macos arm二进制包由网友RigoLigo提供
    • 安装包没有签名,下载后需先使用xattr -rc 安装包文件名允许安装
    • 安装包中不包含编译器。需使用homebrew安装gcc编译器
    • 小熊猫C++仅支持gdb调试。因暂无arm版gdb,所以在macos arm版中无法使用调试功能。

三.第一个C++程序

输出"Hello, world!"

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

导入<iostream>头文件,输入输出都能用到

命名空间(否则有些东西不能用)

int main()

开启主函数,别忘加大括号

cout输出"Hello, world!"    endl是换行符

return 0 结束进程

四.输入和输出

1.输入(cin)

        输入单个变量

cin>>变量名;

注:此处需导入<iostream>头文件

        输入多个变量

//输入2个:
cin>>a>>b;         //这里的a,b都是变量名
//输入4个
cin>>a>>b>>c>>d;      //a,b,c,d也都是变量名

总结:先写cin,要输入的每个变量前面都加>>

例题:输入一个数字,再输出它

#include<iostream>      //导入头文件
using namespace std;     //命名空间
int a;                  //需要输入的变量
int main(){             //开启主函数cin>>a;             //输入acout<<a;            //输出a(cout下文会讲)return 0;           //结束程序
}

2.输出(cout)

        输出单个

cout<<a;      //此处a为变量,可以是int类,也可以是char等

              注意:cin后面加>>    cout的后面是<<

        输出多个

cout<<"ABCDEFG"<<" "<<1234567<<" "<<d;      //d是一个变量
//先输出字符串类型的ABCDEFG,再输出一个空格,然后输出int类型的1234567,输出一个空格,最后输出变量d

总而言之,cout和cin写法很像,一个是>>变量    一个是<<变量(或常量)

不要混淆

五.运算符

1.计算类

        加号+

        很简单,格式:a+b

B=A+5        //将B赋值为A与5的和
A++          //A做自增(自身+1)
A+=7         //同A=A+7

        减号-

B=A-5        //将B赋值为A与5的差
A--          //A做自增(自身-1)
A-=7         //同A=A-7(将A赋值为A-7)
​

        先来个例题

                输入一个整数A和一个整数B,请输出A与B的和 与 A与B的差

#include<iostream>      //导入头文件
using namespace std;     //命名空间
int A,B;                  //需要输入的变量
int main(){             //开启主函数cin>>a>>b;             //输入a,bcout<<a+b<<endl;       //输出a与b的和(endl是换行符)cout<<a-b<<endl;       //输出a与b的差return 0;           //结束程序
}

你答对了吗?

        乘号* 

        不是数学中那样了,变成了*

        格式:a*b

b=a*3     //将b设置为a的3倍
a*=3      //和a=a*3相同 ,自己乘3
a+b*c     //乘法优先极高,先算b*c

 你可以使用小括号()  来提高一部分算式的优先级,但在c++中,不论你嵌套多少层括号,都用小括号就行了,中括号和大括号是干别的事的

        除号/

        看过来,除号也和数学中的除号长得不一样了

        而且,这里是/   不是\

b=a/3       //将b设置为a除以3(a的三分之一)
a/=3        //和a=a/3相同,自己除三
//除法的优先级和乘法相同

        别走,有一种特殊情况:余数

        余数如果出现,你直接把它砍掉就行了

        比如:9/2=4

        4...1,砍掉余数,就是4

前方高能,瞪起眼睛好好看,很重要的!

        取余%

        取a除b的余数(很多方面都会用)

        如:27%5=2

        27除5,5余2,所以27%5=2

a%=20      //同a=a%20
//取余优先度也很高

        做个题

题目描述

从键盘读入一个两位的整数n,请求出这个两位整数个位和十位的和是多少?

输入

一个两位的整数n。

输出

一个整数,代表n个位和十位的和。

题目分析 

这个题就需要用到取余了,它的个位,可以%10来完成(仔细想,57%10=7)就是调取个位

十位呢,用除,因为除法正好能把余数吃掉,(想,57/10=5)就是调取十位上的数

是不是非常舒服,C++除法的特点完美的嵌入这个题中(Beautiful!)

        代码

#include <iostream>     //导入头文件
#include <cstdio>
using namespace std;    //命名空间
int n,a,g,s;            //定义变量(n是初始的二位数,a是个,十位之和,g是个位,s是十位)
int main(){             //主函数开启cin>>n;             //输入ns=n/10;             //按上面方法调取十位g=n%10;             //按上面方法调取个位a=s+g;              //计算十位与个位之和cout<<a<<endl;      //输出结果return 0;           //结束程序
}

2.关系运算符

        关系运算符在判断完成后都会返回true或false(布尔值)

        大于>

int a=5;
int b=10;
cout<<(a>b)<<endl;       //a比b小,所以a>b不成立,输出false

        小于<

int a=5;
int b=10;
cout<<(a<b)<<endl;       //a比b小,所以a<b成立,输出true

        等于==

int a=5;
int b=5;
cout<<(a==b)<<endl;       //a和b一样大,所以a==b成立,输出true

        大于等于>=

int a=11;
int b=10;
cout<<(a>=b)<<endl;       //a比b大,所以a>=b成立,输出true

        小于等于<=

int a=12;
int b=10;
cout<<(a<=b)<<endl;       //a比b大,所以a<=b不成立,输出false

        不等于!=

int a=5;
int b=10;
cout<<(a!=b)<<endl;       //a不等于b,所以a!=b成立,输出true

你问括号是干啥的,增加代码可读性(让代码变的好看)

例题又来了

题目描述

从键盘读入一个两个整数a和b,请输出这个两位整数谁大?

输入

两个的整数a,b

输出

a>b 或 a<b 或 a==b

题目分析 

这个题较为复杂,需要我们用到if判断

依次判断三种情况,并输出相应的结果

上文讲到,关系运算符在判断完成后都会返回true或false(布尔值),这就正好对上if的胃口了

if是什么

if在英文中是如果的意思,在C++里,它也是如果的意思,可以判断条件表达式,如结果为true,执行if里面的代码,否则不执行

示例:

if(条件表达式){要执行的代码;
}

其实不难. 

代码

​#include <iostream>     //导入头文件
#include <cstdio>
using namespace std;    //命名空间
int a,b;                //定义变量
int main(){             //主函数开启cin>>a>>b;          //输入a,bif(a>b){cout<<"a>b";    //判断a是否大于b}if(a<b){cout<<"a<b";    //判断a是否小于b}if(a==b){cout<<"a==b";    //判断a是否等于b}return 0;           //结束程序
}

3.逻辑运算符

        下文将会提及到if语句,在那个时候就会用到

        与&&

                同Python中的and,C++里也可以写and

                衔接两个条件表达式

                若结果都为true,返回true

                若有1-2个表达式结果为false,则为false

        或||

                同Python中的or,C++里也可以写or

                衔接两个条件表达式

                若结果都为false,返回false

                若有1-2个表达式结果为true,返回true

        取反(非)  !

                同Python中的not,C++里也可以写not

                取反一个条件表达式

                若结果为true,返回false

                若结果为false,则为true              

                这里先不放例题,下文讲if的时候放

好了各位,今天的C++菜鸟教程就到这里了,点赞收藏

大家也可以在评论区向我提出意见

C++菜鸟教程我两周更新一次,大家再见!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com