1、C++命名空间——作用:规范变量出处
在C++命名空间中,std是标准的命名空间。
企业规范:
g_stu: 以g_ 开头的是全局变量
stu_t: 以_t 结尾的代表typedef规则定义的别名
(1)自定义一个命名空间:
namespace spaceA{
int g_a = 10;
} //命名空间定义结尾无分号(;)
(2)命名空间的使用
//法1:
using spaceA::g_a;
//法2:
spaceA::g_a
//法3:
using namespace spaceA;
注:命名空间中支持嵌套命名空间,但此时引用具体变量时,必须引到变量定义的最内层命名空间为止。
2、C++中的变量随用随定义,但是C语言建议在函数开头定义变量;
3、C++对struct进行了优化
struct student
{
int age;
int score;
};
//C语言定义结构体变量
struct student s1;
//C++定义结构体变量
student s1;
注:C语言中相像C++中一样简便定义结构体变量需用到typedef
4、C++对函数返回值类型做严格的检测
5、C++对参数个数进行严格匹配
6、C语言中无bool类型,C++中加入了bool类型(仅含有true 和 false 两个值),占取一个字节空间
7、C++对const进行了增强
注: C语言中的const是个冒牌货,可以使用指针修改常变量的值;C++对这一点进行了优化
增强部分:
(1)C语言中,可以通过指针改变常变量的值(不安全)
(2)C++中,对常量做了功能增强,不可通过指针更改常量的值
注:在C++中增加了符号表,通过键值对建立了值与常量的映射,进而确保常量值不可变
8、三目运算符
左值:放在等号左边,一般是可修改的变量;
右值:放在等号右边,一般是常量或者表达式
三目运算符当左值:
//C语言中,需通过地址
*(a > b? &a : &b) = 50;
//C++中三目运算符可以直接当左值
(a > b? a : b) = 60;
9、枚举类型(大型项目中常用)——相当于批量定义宏
enum season
{
SPR,
SUM,
AUT,
WIN
};
//定义枚举变量
enum season s = AUT;
//在C语言中,枚举变量是一个整型变量
需明确:若改变AUT值为100,随即WIN值就变更为101
注:枚举变量一般用于switch中,为case设置不同的条件