C++利用自定義命名空間實現變量的間接訪問
要求:變量 val 放在獨立的 .cpp 文件的自定義命名空間中,在main函數中訪問變量val
實現代碼如下:
myname.h
#ifndef __MODULE_H
#define __MODULE_H
//自定義的命名空間
namespace val
{
//聲明函數
int getval();
void setval(int x);
}
#endif
myname.cpp
#include <iostream>
#include "myname.h"
//自定義的命名空間,若源文件與頭文件的命名空間名字相同,則編譯器會自動合併兩個命名空間
namespace val
{
//定義變量
int value;
//定義函數
int getval()
{
return value;
}
void setval(int x)
{
value = x;
}
}
main.cpp
#include <iostream>
#include "myname.h"
using namespace std;
using namespace val; //使用自定義的命名空間
int main()
{
setval(10); //設置value的值
cout<<getval()<<endl; //獲取value的值
return 0;
}