《从C语言过渡到C++和虚幻引擎中的C++编程》教程①

本系列文字教程的受众对象是刚刚经历完大一上的C语言期末考试的、仅具有一定C语言基础的新生。

如果您是上述对象,在看完本系列教程之后,您将收获C++编程入门和虚幻引擎中的C++编程入门知识以及一些游戏开发中常用的数据结构与算法。

序章

一、C++是怎么来的?

C++是一种计算机高级程序设计语言,由C语言扩展升级而产生,最早于1979年由本贾尼·斯特劳斯特卢普(Bjarne Stroustrup,1950年6月11日-)在AT&T贝尔工作室研发。
C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。

二、何为面向过程?何为面向对象?

在使用计算机解决一些问题时,你会发现很多问题它会用到相似甚至一样的计算机指令,如果每次用到这些指令的时候都新写一遍,肯定是是非常低效的,自然而然地,人们就想到了数学中的一个常用的概念——函数,我们可以把一个问题的答案写成由多个函数组成的表达式,这样就可以把一个问题进行拆解。

同样我们编程的时候,也可以先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以解决问题了。这就是面向过程编程的思想。

C语言就是基于这样的思路设计的语言,而C++再此基础上增加了面向对象的编程思想。

随着计算机技术的发展,程序越来越大,很多大型计算机程序一个人是无法写完的。大型项目要解决的问题如果只用函数来拆解,会拆解出非常多的个函数,并且每个函数之间是并列关系,如果程序员忘记或者错用了应有的调用方式,那么就是一场灾难。

但是如果我们能把程序的每类功能都分门别类,解决某一类问题就用某一类的程序,同类的功能可以从同类中创建一个一样的实例对象来用,并且使用某一类程序的时候有相应的访问权限防止其他程序员错用,然后与该程序功能相似的程序可以通过在该程序的基础上增删查改一部分内容来实现的话,就能大大降低程序员的思维负担。因此,面向对象的编程思维就诞生了。

面向对象编程就是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。

C++便是在这样的编程思想下诞生的。

三、流行的C++编译器有哪些?

MSVC

Microsoft Visual C++(简称Visual C++、MSVC、VS或VC)是微软公司的免费C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。

我们所熟知的Visual Studio和Visual Studio Code默认装载的C++编译器就是MSVC

GCC

GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言编译器。GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)

GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件。此处,“自由”的含义是它尊重用户的自由。

网上经常说的g++就是指的GCC的C++编译器,Dev-C++使用的便是GCC内核

Clang

Clang是一个C语言、C++、Objective-C语言的轻量级编译器。源代码发布于BSD协议下。Clang将支持其普通lambda表达式、返回类型的简化处理以及更好的处理constexpr关键字。

MAC系统上的Xcode默认使用Clang作为其C/C++编译器,此外它还拥有GCC

本教程推荐使用Visual Studio进行C++的学习,因为它与虚幻引擎较为适配且网上拥有丰富的相关教程

四、你的第一个C++程序

#include<iostream>//C++标准库相较于C语言新增的流式输入输出
using namespace std;//使用命名空间:std(C++标准库的命名空间),为了避免大型项目中命名污染的问题所以C++比C语言多了命名空间的概念,指定当前使用的是哪个命名空间内的名称,这就避免了不同的库存在相同的函数名或者变量名时,编译器不知道你指定的是哪一个的问题
int main()
{
   cout<<"Hello world!"<<endl;//<<操作符朝向cout为输出,朝向变量为向这个变量输入值;endl意思是"end line";即结束一行并回车
}

五、虚幻引擎的安装

可以去看B站教程
虚幻5引擎安装教程

猜你喜欢

转载自blog.csdn.net/lifesize/article/details/128516481