文章目录
C++ 简介
概述
C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持面向过程编程、面向对象编程和泛型编程。
C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。
C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。
注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。
面向对象程序设计
C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:
- 封装
- 抽象
- 继承
- 多态
标准库
标准的 C++ 由三个重要部分组成:
- 核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。
- C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
- 标准模板库(STL),提供了大量的方法,用于操作数据结构等。
ANSI 标准
ANSI 标准是为了确保 C++ 的便携性 —— 您所编写的代码在 Mac、UNIX、Windows、Alpha 计算机上都能通过编译。
由于 ANSI 标准已稳定使用了很长的时间,所有主要的 C++ 编译器的制造商都支持 ANSI 标准。
C++ 基本语法
C++ 标识符
C++ 标识符是用来标识变量、函数、类、模块,或任何其他用户自定义项目的名称。一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。
C++ 标识符内不允许出现标点字符,比如 @、& 和 %。C++ 是区分大小写的编程语言。因此,在 C++ 中,Manpower 和 manpower 是两个不同的标识符。
下面列出几个有效的标识符:
mohd zara abc move_name a_123
myname50 _temp j a23b9 retVal
C++ 关键字
C++ 中的保留字不能作为常量名、变量名或其他标识符名称。
完整关键字介绍可查阅:C++ 的关键字(保留字)完整介绍
C++ 注释
程序的注释是解释性语句,您可以在 C++ 代码中包含注释,这将提高源代码的可读性。所有的编程语言都允许某种形式的注释。
C++ 支持单行注释和多行注释。注释中的所有字符会被 C++ 编译器忽略。
C++ 注释一般有两种:
- // - 一般用于单行注释。
- /* … */ - 一般用于多行注释。
C++ 数据类型
内置类型
C++ 为程序员提供了种类丰富的内置数据类型和用户自定义的数据类型。下表列出了七种基本的 C++ 数据类型:
类型 | 关键字 |
---|---|
布尔型 | bool |
字符型 | char |
整型 | int |
浮点型 | float |
双浮点型 | double |
无类型 | void |
宽字符型 | wchar_t |
一些基本类型可以使用一个或多个类型修饰符进行修饰:
- signed
- unsigned
- short
- long
下表显示了各种变量类型在内存中存储值时需要占用的内存,以及该类型的变量所能存储的最大值和最小值。
类型 | 位 | 范围 |
---|---|---|
char | 1个字节 | -128到127或者0到255 |
unsigned char | 1个字节 | 0到255 |
signed char | 1个字节 | -128到127 |
int | 4个字节 | -2147483648 到 2147483647 |
unsigned int | 4个字节 | 0 到 4294967295 |
signed int | 4个字节 | -2147483648 到 2147483647 |
short int | 2 个字节 | -32768 到 32767 |
unsigned short int | 2 个字节 | 0 到 65,535 |
signed short int | 2 个字节 | -32768 到 32767 |
long int | 8 个字节 | -9,223,372,036,854,775,808 到9,223,372,036,854,775,807 |
unsigned long int | 8 个字节 | 0 到 18,446,744,073,709,551,615 |
signed long int | 8 个字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
float | 4 个字节 | +/- 3.4e +/- 38 (~7 个数字) |
double | 8 个字节 | +/- 1.7e +/- 308 (~15 个数字) |
long double | 16 个字节 | 可提供18-19位有效数字 |
wchar_t | 2 或 4 个字节 | 1 个宽字符 |
注意:不同系统会有所差异。
宽字符类型的定义及使用
宽字符类型 wchar_t 是这样来的:
typedef short int wchar_t;
所以 wchar_t 实际上的空间是和 short int 一样,占两个字节。
宽字符类型wchar_t常用来存储中文、日文和韩文;
使用前需包含头文件,并声明语言区域:
#include<locale>
setlocale(LC_ALL, "chs");//指定字符区域为中文
宽字符型定义:
wchar_t wt[] = L"中国人";
在C++中的iostream类中的wcout对象可以代替cout对象来执行对宽字符的输出
#include<iostream>
#include<locale>
using namespace std;
int main()
{
setlocale(LC_ALL, "chs");//指定字符区域为中文
wchar_t st[] = L"中文的";
char stc[] = "中文的";
wcout<<st<<endl;//宽字符类型数组的内容:"中文的"
cout<<stc<<endl;//单字符类型的内容:"中文的"
cout<<st<<endl;//宽字符类型数组的地址
cout<<&stc<<endl;//单字符类型的地址
cout<<sizeof(st)<<endl;//宽字符类型数组的大小:3*2+2 = 8;
cout<<sizeof(stc)<<endl;//单字符类型数组的大小:6*1+1 = 7;中文字符以两个单字符存储
cout<<"------------------------------"<<endl;
cout<<sizeof(char)<<endl;
cout<<sizeof(wchar_t)<<endl;
return 0;
}
typedef 申明
您可以使用 typedef 为一个已有的类型取一个新的名字。下面是使用 typedef 定义一个新类型的语法:
typedef type newname;
例如,下面的语句会告诉编译器,feet 是 int 的另一个名称:
typedef int feet;
现在,下面的声明是完全合法的,它创建了一个整型变量 distance:
feet distance;
枚举类型
枚举类型声明一个可选的类型名称和一组标识符,用来作为该类型的值。其带有零个或多个标识符可以被用来作为该类型的值。每个枚举数是一个枚举类型的常数。
创建枚举,需要使用关键字 enum。枚举类型的一般形式为:
enum enum-name { list of names } var-list;
在这里,enum-name 是枚举类型的名称。名称列表 { list of names } 是用逗号分隔的。
例如,下面的代码定义了一个颜色枚举,变量 c 的类型为 color。最后,c 被赋值为 “blue”。
enum color { red, green, blue } c;
c = blue;
默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。但是,您也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。例如,在下面的枚举中,green 的值为 5。
enum color { red, green=5, blue };
在这里,blue 的值为 6,因为默认情况下,每个名称都会比它前面一个名称大 1。
总结
太久没有使用到C++,现在重新从头过一遍,每天挤一点点时间,简单记录一下
参考文档:C++ 教程