namespace命名空間
C++中的命名空間:
命名空間將全局作用域分成不同的部分
不同命名空間中的標(biāo)識符可以同名而不會發(fā)生沖突
命名空間可以相互嵌套
全局作用域也叫默認(rèn)命名空間
C++命名空間的定義:
namespace name{
...
}
C++命名空間的使用:
使用整個命名空間:using namespace name;
使用命名空間中的變量:using name::variable;
使用默認(rèn)命名空間中的變量:::variable
默認(rèn)情況下可以直接使用默 認(rèn)命名空間中的所有標(biāo)識符
可以嵌套
新增bool類型關(guān)鍵字:
C++中的布爾類型
C++在C語 的基本類型系統(tǒng)之上增加了bool
C++中的bool可取的值只有true和false
理論上bool只占 1個字節(jié),
如果多個bool變量定義在 起,可能會各占1個bit,這取決于編譯器的實(shí)現(xiàn)
true代表真值,編譯器內(nèi)部 1來表 false代表 真值,編譯器內(nèi)部 0來表
bool類型只有true( 0)和false(0)兩個值
C++編譯器會在賦值時將 1值轉(zhuǎn)換為true,0值轉(zhuǎn)換為false
三目運(yùn)算符的增強(qiáng):
#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;
}
作為左值可以這么寫。
運(yùn)算結(jié)果:a=4,b=5
const增強(qiáng):
合理的利用const的好處:
1指針做函數(shù)參數(shù),可以有效的提高代碼可讀性,減少bug;
2清楚的分清參數(shù)的輸入和輸出特性
#include <iostream>
int main(void)
{
//const 定義常量---> const 意味只讀
const int a;
int const b;
//第一個第二個是一樣的
const int *c;
//第三個 c是一個指向常整形數(shù)的指針(所指向的內(nèi)存數(shù)據(jù)不能被修改,但是本身可以修改)
int * const d;
//第四個 d 常指針(指針變量不能被修改,但是它所指向內(nèi)存空間可以被修改)
const int * const e ;
//第五個 e 個指向常整形的常指針(指針和它所指向的內(nèi)存空間,均不能被修改)
return 0;
}
#define a 1
const int a=1 //這是a在常量區(qū)
C++中的const修飾的,是一個真正的常量,而不是C中變量(只讀)。在const修飾的常量編譯期間,就已經(jīng)確定下來了, define是在預(yù)處理階段,相當(dāng)于文本替換
枚舉
enum name {
a,
b,
c
}
a默認(rèn)值是0,若a=1,則b=2,c=3