-
名空間
鎖定
- 中文名
- 名空間
- 名空間定義
- c++的關鍵字namespace引導
- 應 用
- 定名空間是C++的新特性
- 特 點
- 降低程序的可讀性
名空間名空間簡介
名空間定義用c++的關鍵字namespace引導,定義格式:
namespace 名空間標識符名
{
}
名空間成員的聲明
名空間成員的訪問:
使用名空間成員時需用名空間名進行標識,從而解決了標識符的衝突。名空間成員訪問方式如下
名空間標識符名::成員名
名空間的應用
可以指定名空間是C++的新特性,在使用STL類庫時經常用到這麼一句:using namespace std;
C++中,頭文件可以使用舊版本的*.h,也可以使用不帶.h擴展名的頭文件。編譯預處理指令可以採用任何一種形式的頭文件方式,但兩種頭文件不能混合使用。在應用名空間時,使用編譯預處理命令包含相關頭文件時,應省略頭文件後綴.h,例如使用iostream.h的方法如下:
#include<iostream>
應用舉例:
例一:
#include<iostream>
#include<string>
using namespace std;//指示在本程序中可以使用c++標準類庫中定義的名字,std是標準名空間名,在標準頭文件中聲明的函數、對象和類模板,都在名字空間std中聲明
namespace A//用關鍵字定義名字空間A
{
string user_name="namespace A";
int fun()
{
int n=18;
return n;
}
void Display()
{
cout<<"In namespace A……"<<endl;
}
}
namespace B
{
string user_name="namespace B";
int fun()
{
int n=28;
return n;
}
void Display()
{
cout<<"In namespace B……"<<endl;
}
}
int main(void)
{
cout<<A::user_name<<endl;
cout<<"n="<<A::fun()<<endl;
A::Display();
cout<<endl;
cout<<B::user_name<<endl;
cout<<"n="<<B::fun()<<endl;
B::Display();
cout<<endl;
return 0;
}
例二:
#include<iostream>
using namespace std;
int main(void)
{
std::cout<<"This is a C++ program!"<<endl;
return 0;
}
C++中為什麼增加“名空間”和“作用域”?
float a=13.5;
void main()
{
int a=5;
cout<<a;
}
程序中有兩個a變量:一個是全局變量a,實型;另一個是main函數中的整型變量a,它是在main函數中有效的局部變量。根據規定在main函數中局部變量講屏蔽同名的全局變量。因此上述的輸出是局部變量a的值5,而不是全局實型變量a的值13.5.如果想輸出全局實型變量的值,有什麼辦法呢?c++提供了作用域運算符::,它能指定所需要的作用域。
float a=13.5;
void main()
{
int a=5;
cout<<a<<endl;
cout<<::a<<endl;
}
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:11次歷史版本
- 最近更新: lllj119