namespace命名空间
C++中的命名空间:
命名空间将全局作用域分成不同的部分
不同命名空间中的标识符可以同名而不会发生冲突
命名空间可以相互嵌套
全局作用域也叫默认命名空间
C++命名空间的定义:
namespace name{
...
}
C++命名空间的使用:
使用整个命名空间:using namespace name;
使用命名空间中的变量:using name::variable;
使用默认命名空间中的变量:::variable
默认情况下可以直接使用默 认命名空间中的所有标识符
可以嵌套
新增bool类型关键字:
C++中的布尔类型
C++在C语 的基本类型系统之上增加了bool
C++中的bool可取的值只有true和false
理论上bool只占 1个字节,
如果多个bool变量定义在 起,可能会各占 个bit,这取决于编译器的实现
true代表真值,编译器内部 1来表 false代表 真值,编译器内部 0来表
bool类型只有true( 0)和false(0)两个值
C++编译器会在赋值时将 0值转换为true,0值转换为false
三目运算符的增强:
#include <iostream>
using namespace std;
int main(void)
{
int a=3,b=5;
(a<b?a:b)=4;
cout<<a<<endl;
cout<<b<<endl;
return 0;
}
作为左值可以这么写。
运算结果:a=4,b=5
const增强:
合理的利用const的好处:
1指针做函数参数,可以有效的提高代码可读性,减少bug;
2清楚的分清参数的输入和输出特性
#include <iostream>
int main(void)
{
//const 定义常量---> const 意味只读
const int a;
int const b;
//第一个第二个是一样的
const int *c;
//第三个 c是一个指向常整形数的指针(所指向的内存数据不能被修改,但是本身可以修改)
int * const d;
//第四个 d 常指针(指针变量不能被修改,但是它所指向内存空间可以被修改)
const int * const e ;
//第五个 e 个指向常整形的常指针(指针和它所指向的内存空间,均不能被修改)
return 0;
}
#define a 1
const int a=1 //这是a在常量区
C++中的const修饰的,是一个真正的常量,而不是C中变量(只读)。在const修饰的常量编译期间,就已经确定下来了, define是在预处理阶段,相当于文本替换
枚举
enum name {
a,
b,
c
}
a默认值是0,若a=1,则b=2,c=3