1.基本介绍
1)是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。
2)是一种中级语言(综合高级和低级语言的特点)
3)是C 的超集
2.面向对象开发的四大特性
封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)、抽象(Abstraction)
3.三个重要部分组成
核心语言、C++ 标准库、标准模板库(STL)
4.本地环境设置
文本编辑器和 C++ 编译器
具体安装教程见https://www.runoob.com/cplusplus/cpp-environment-setup.html
5.基本语法
1)基本代码格式
#include <iostream> //定义头文件,包含了程序中必需的或有用的信息
using namespace std; //告诉编译器使用 std 命名空间
// main() 是程序开始执行的地方 该行为单行注释,以 // 开头,在行末结束
int main() //主函数,程序从这里开始执行
{
cout << "Hello World"; // 输出 Hello World //会在屏幕上显示消息 "Hello World"
return 0; //终止 main( )函数,并向调用进程返回值 0
}
2)编译 & 执行 C++ 程序
a.在文本编辑器,添加上述代码,保存成xxx.cpp文件
b.打开命令提示符,进入到保存文件所在的目录
c.键入 'g++ hello.cpp ‘,输入回车,编译代码,没报错进入下一行,并生成 a.out 可执行文件
d.键入 ’ a.out’ 来运行程序,屏幕上会显示 ’ Hello World ’
3)分号 & 语句块
每个语句必须以分号结束。它表明一个逻辑实体的结束
语句块是一组使用大括号括起来的按逻辑连接的语句
C++ 不以行末作为结束符的标识,可以在一行上放置多个语句
4)标识符
以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9),不允许出现标点字符比如 @、& 和 %。区分大小写
6.数据类型
1)基本的内置类型
布尔型(bool)、字符型( char)、整型(int)、浮点型(float)、双浮点型(double)、无类型(void)、宽字符型(wchar_t)
2)typedef 声明
//写法:
typedef type newname;
typedef int feet;
feet distance;
3)枚举类型
C++中的一种派生数据类型,由用户定义的若干枚举常量的集合
//书写形式:
enum 枚举名{
标识符[=整型常数],
标识符[=整型常数],
...
标识符[=整型常数]
} 枚举变量;
//如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始,例如
enum color { red, green, blue } c;
c = blue;
//默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推.但是,也可以给名称赋予一个特殊的值,例如
enum color { red, green=5, blue }; //其中green 的值为 5,blue 的值为 6,默认情况下,每个名称都会比它前面一个名称大 1,但 red 的值依然为 0
7.类型转换
1)静态转换(Static Cast)
将一种数据类型的值强制转换为另一种数据类型的值
2)动态转换(Dynamic Cast)
将一个基类指针或引用转换为派生类指针或引用
3)常量转换(Const Cast)
将 const 类型的对象转换为非 const 类型的对象
4)重新解释转换(Reinterpret Cast)
将一个数据类型的值重新解释为另一个数据类型的值,通常用于在不同的数据类型之间进行转换
8.变量类型
//1.变量定义:
type variable_name = value;
//2变量声明 注意可以多次声明,但是只能定义一次
//例如:
// 函数声明
int func();
int main()
{
// 函数调用
int i = func();
}
// 函数定义
int func()
{
return 0;
}
//3.C++ 中的左值(Lvalues)和右值(Rvalues)
左值:指向内存位置的表达式,可以出现在赋值号的左边或右边
右值:存储在内存中某些地址的数值,只能出现在赋值号的右边
9.变量作用域
局部作用域、全局作用域、块作用域、类作用域
10.常量
常量是固定值,在程序执行期间不会改变,又叫做字面量,可以是任何的基本数据类型,定义后不可修改。
1)整数常量
可以是十进制、八进制或十六进制的常量
语法: 前缀+数值+后缀
其中:前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制
后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long),不区分大小写和顺序
例如:
85 // 十进制
0213 // 八进制
0x4b // 十六进制
30 // 整数
30u // 无符号整数
30l // 长整数
30ul // 无符号长整数
2)浮点常量
由整数部分、小数点、小数部分和指数部分组成
3.14159 // 合法的
314159E-5L // 合法的
510E // 非法的:不完整的指数
210f // 非法的:没有小数或指数
.e55 // 非法的:缺少整数或分数
3)布尔常量
true和false
4)字符常量
字符常量是括在单引号中,如果常量以 L(仅当大写时)开头,则表示它是一个宽字符常量(例如 L’x’),此时它必须存储在 wchar_t 类型的变量中。否则,它就是一个窄字符常量(例如 ‘x’),此时它可以存储在 char 类型的简单变量中
5)字符串常量
字符串字面值或常量是括在双引号 “” 中的
11.修饰符类型
修饰符是用于改变变量类型的行为的关键字
signed:表示变量可以存储负数。对于整型变量来说,signed 可以省略,因为整型变量默认为有符号类型。
unsigned:表示变量不能存储负数。对于整型变量来说,unsigned 可以将变量范围扩大一倍。
short:表示变量的范围比 int 更小。short int 可以缩写为 short。
long:表示变量的范围比 int 更大。long int 可以缩写为 long。
long long:表示变量的范围比 long 更大。C++11 中新增的数据类型修饰符。
float:表示单精度浮点数。
double:表示双精度浮点数。
bool:表示布尔类型,只有 true 和 false 两个值。
char:表示字符类型。
wchar_t:表示宽字符类型,可以存储 Unicode 字符。