這二個(gè)東西,經(jīng)常被我們忽略了贸呢,其實(shí)很實(shí)用。當(dāng)你深入c++世界的時(shí)候拢军,總有一天會遇到他們楞陷,先面熟一下吧。
1.0 名稱空間茉唉。
知識點(diǎn)綜述:
名稱空間:將一個(gè)程序中所有名字規(guī)范到不同的集合-名字空間中
明確每個(gè)名字中沒有任何二個(gè)相同的名字定義固蛾。
格式:
namespace name{
code;
}//沒有分號
原則:
1.0 使用在已經(jīng)命名的名稱空間中聲明的變量度陆,不使用外部全局變量艾凯。
2.0 對于using聲明,首先將其作用域設(shè)置為局部而不是全局懂傀。
3.0 不要在頭文件中使用using聲明趾诗,這樣使得可用名稱空間變的
模糊,容易出現(xiàn)二義性蹬蚁。
4.0 導(dǎo)入名字空間恃泪,首先使用名字域解釋和using聲明,
盡量不用using命令犀斋。
其它知識點(diǎn):
5.0 我們經(jīng)常為了方便贝乎,使用 using namespace std;//就是std名字空間。
6.0 ::域解釋符叽粹,表明使用名字來自哪個(gè)空間览效, 比如 std::cout<<var;
相關(guān)代碼:
#include<iostream>
#include<string>
using namespace std;
namespace cat_name
{
string namespace_name;
void print() {
cout << "hello world" << endl;
}
//名稱空間嵌套
namespace c1
{
void display()
{
cout << namespace_name << endl;
}
}
class Cat {
private:
string name;
public:
Cat(string name){
this->name = name;
}
void speak();
};
}
namespace cat_name {
void Cat::speak() {
cout << "my name is " << name << endl;
}
}
namespace dog_name {
string namespace_name;
void print()
{
//作用域訪問cat_name()中的print函數(shù)
cout << "我要調(diào)用另一個(gè)名稱空間的函數(shù)" << endl;
cat_name::print();
}
class Dog
{
private:
string name;
public:
Dog(string name) {
this->name = name;
}
void speak()
{
cout << "my name is " << name << endl;
}
};
}
int main()
{
string namespace_name;
/* 局部using使用
using cat_name::namespace_name;
namespace_name = "cat_name";
*/
cat_name::namespace_name = "cat_name";
dog_name::namespace_name = "dog_name";
cat_name::Cat cat("黑貓警長");
dog_name::Dog dog("旺財(cái)"); //如果不加名稱空間蒙具,會顯示未定義錯(cuò)誤
cat.speak();
dog.speak();
//雙重域限定才行。
cat_name::c1::display();
system("pause");
return 0;
}
結(jié)果:
my name is 黑貓警長
my name is 旺財(cái)
cat_name
2.0 條件編譯朽肥。
知識點(diǎn)綜述:
條件編譯:采用條件編譯指令禁筏,可以指定某些代碼
在滿足一定條件時(shí)參與編譯或不參與編譯.
圖解知識點(diǎn):
代碼:
#include<iostream>
#include<string>
using namespace std;
#define M
void display()
{
#if defined(M)
cout << "M存在" << endl;
#else
cout << "M不存在" << endl;
#endif
}
int main()
{
display();
system("pause");
return 0;
}
結(jié)果:
M存在
今天跑步了,今天買了一把雨傘衡招。今天下起了小雨篱昔。
啊啊啊。雨傘掉了始腾,這至少是第二把了州刽,現(xiàn)在掉了二件外套,二個(gè)..........
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者