目录
一 C++简介
C++一门非常古老但是不会衰亡的语言,因为它既具备C语言级别的高性能,又具备Java似的面向对象,C++常用领域有操作系统、嵌入式、图像处理、服务器、游戏引擎等。
1、C++的几大特色:
- 高性能。C++编写的程序直接编译为二进制文件,在电脑上面运行极快;
- 兼容C语言。C++本质上是基于C语言发展起来的,既然是天生兼容C语言的。
- 面向对象。C++语言具备面向对象的几大特性:封装、继承、抽象、多态;
- 模板编程。C++的模板编程非常强大,是开发必不可少的关键技术;
- 丰富的类库。如著名的boost库也在持续不断更新,甚至C++标准库大多来源于此;
- 源源不断的新特性加入。C++目前最新的标准是C++23,不过这些均是基于C++11。每更新一个版本,均会加入一些非常关键的特性,这使得开发效率越来越高,但是随之而来的问题就是几乎学不完C++的所有特性。
2、如何学习C++语言?
- 学习C++基础语法,多敲代码,同时理解一些C++基础语法背后的逻辑;
- C++的各种标准本质上就是加入不同的语言特性,实际学习时不需要全部学习,只需要学习当前项目能用到的即可,一般可以购买基本工具书当作字典使用。
- 学习常用的数据结构类;
- 学习常用设计模式;
- 以项目为导向,融合利用C++的各种知识,达到各种知识能够融汇贯通、流畅组合使用;
- 持续学习操作系统、数据库、网络通信、软件架构等知识。
3、C++代码运行过程:
1,编写C++源代码文件,实际上就是一个普通的文本文件,一般习惯以.cpp 及.h作为文件后缀。
2,对程序进行编译,这需要用到编译器(compiler)。编译器将C++语句转换成机器码(也称为目标码)。3,对程序进行链接,这需要用到链接器(linker)。链接器将编译获得机器码与C++库中的代码进行合并。
4,形成可执行程序。
二 C++语言开发环境搭建
支持C++语言开发的集成环境非常多,如Visual Studio ,Visual Studio code ,Qt Creator , Clion ,Eclipse等等。下面罗列一下免费软件与收费软件:
免费软件推荐: Visual Studio社区版 ,Visual Studio code ,Qt Creator ,Eclipse
收费软件: Clion 等;
这里以Clion为例,进行示范与环境搭建。
Clion是收费软件,可以免费试用30天,大家可根据实际情况进行选择,也可以选择上面的免费软件,安装教程都很简单,百度搜索一下即可!
首先进入Clion官网,下载Clion安装包,地址: https://www.jetbrains.com/clion/
下载完成后,双击安装包进行根据提示一步步安装即可,
安装完成后,进行一些C++相关的必要配置:
如果缺少相关工具,请大家百度搜索对应的工具软件安装,安装完成工具并配置相应的环境变量,待所有工具安装、配置完成后,再次进入Clion的配置页面会自动检测,最后点击确认即可完成C++的开发环境搭建。
三 执行C++程序
实际上,C++在写完源代码之后,可以直接在控制台使用命令编译,如编译运行下面的main.cpp文件:
进入main.cpp文件所在目录,然后在控制台执行编译命令:
接着在控制台执行编译后的程序(默认名称是a.exe)
可见,执行程序后,输出了hello, world ! hello
一般开发C++都是在集成环境中完成程序的编写、编译、运行的,在Clion中新建C++项目,然后在mian.cpp中编写如下代码:
点击运行:
运行结果:
四 C++基础语法演示
#include <iostream> //导入对应的库头文件
//所有程序的执行入口main函数,
int main() {
//每条语句都是以分号 ( ;)结束的
std::cout << "Hello, World!" << std::endl;
return 0;
} //使用大括号{}来作为语句块,一个块里面可以包含多个语句
1、C++关键字
C++的关键字特别多,这里仅仅是罗列出来,大家不用着急去理解每个关键字的具体用法,后面在实际开发时用多了既然也就熟悉了!
asm | else | new | this |
auto | enum | operator | throw |
bool | explicit | private | true |
break | export | protected | try |
case | extern | public | typedef |
catch | false | register | typeid |
char | float | reinterpret_cast | typename |
class | for | return | union |
const | friend | short | unsigned |
const_cast | goto | signed | using |
continue | if | sizeof | virtual |
default | inline | static | void |
delete | int | static_cast | volatile |
do | long | struct | wchar_t |
double | mutable | switch | while |
dynamic_cast | namespace | template |
|
代码演示注释、语句、语句块、枚举、基本类型、类型取别名、程序基本构成;
#include <iostream>
typedef int MyInt; //给基本数据类型int取别名为MyInt
//定义一个枚举类型
enum Color{red,blue,yellow} color;
//所有程序的执行入口main函数,
int main() {
//这是单行注释
std::cout << "Hello, World!" << std::endl;
/*
* 这是多行注释
* */
//几种基本的内置数据类型,部分基本类型可以使用一个或多个类型修饰符进行修饰:signed(有符号),unsigned(无符号),short(短型),long(长型)
std::cout<<"整型int,在当前系统上面占用字节数为:"<<sizeof (int) << std::endl; //sizeof()的作用是计算类型占用的字节数
std::cout<<"布尔型bool,在当前系统上面占用字节数为:"<<sizeof (bool) << std::endl;
std::cout<<"字符型char,在当前系统上面占用字节数为:"<<sizeof (char) << std::endl;
std::cout<<"浮点型float,在当前系统上面占用字节数为:"<<sizeof (float ) << std::endl;
std::cout<<"双精度浮点型double,在当前系统上面占用字节数为:"<<sizeof (double ) << std::endl;
std::cout<<"无类型用void"<< std::endl;
std::cout<<"宽字节型wchar_t,在当前系统上面占用字节数为:"<<sizeof (wchar_t ) << std::endl;
//使用自定义别名类型MyInt
MyInt a=1234;
std::cout<< a <<std::endl;
//给枚举赋值
color=red;
//使用枚举: 枚举属于一种常量,直接使用其枚举成员即可
std::cout<<"枚举值:"<<red<< std::endl;
return 0;
}