C++ namespace相关语法实例分析
2014-08-19 10:24
766 查看
namespace命名空间是C++中一个非常重要的概念,本文实例展示了namespace的相关语法,供大家参考。具体如下:
本段测试代码包括如下内容:
(1) 如何访问namespace中声明的名称;
(2) namespace导致的相关冲突;
(3) namespace可嵌套;
(4) 可以在namespace中使用using声明和using编译命令;
(5) 未命名的namespace:其作用域为定义该namespace所在的声明区域。C++推荐用来替代static定义静态变量。
具体程序代码如下:
#include <iostream> using namespace std; namespace jerry{ int height; int weight; void showHeight(); string name; } // namespace jerry{ void showHeight() { cout<<"Method 3: Jerry height: "<<height<<" kg"<<endl; } } namespace elements { namespace fire { int flame; using namespace jerry; //(4) can use 'using' in namespace define using std::cout; } float water; } //(5) no name namespace //其作用域为定义时所在的声明域,可用来替换static变量,这是C++标准推荐的行为 namespace { string data; } void testFun(); int main() { cout<<"This code is to test namespace"<<endl; /*not allowed to define namespace in code segment //Error namespace jerry{ int height; int weight; } */ //(1) To access the data in namespace //Method 1: 作用域解析符 jerry::height = 165; cout<<"Method 1: Jerry height: " << jerry::height <<" cm"<<endl; //Method 2: using声明 using jerry::weight; weight = 64; cout<<"Method 2: Jerry weight: " << weight<<" kg"<<endl; //Method 3: using编译指令:All the define data in namespace jerry can be access. using namespace jerry; showHeight(); //(2) about name conflict { jerry::name = "Jerry"; string name = "Tom"; //using jerry::name; Error cout << "name: "<<name<<endl; /* This method will lead conflict with locall parameter using jerry::name; cout << "name: "<<name<<endl; */ cout << "name: "<<jerry::name<<endl; using namespace jerry; //局部变量会覆盖jerry命名空间的name定义 cout << "name: "<<name<<endl; } //(3) namespace can nest elements::fire::flame = 2; using namespace elements::fire; //(5) no name namespace //其作用域为定义时所在的声明域,可用来替换static变量,这是C++标准推荐的行为 data = "hello"; cout<<"No name namespace: data: " << data <<endl; testFun(); } void testFun() { /*not allowed to define namespace in code segment //Error namespace jerry{ int height; int weight; } */ //(5) no name namespace data = "hello in function"; cout<<"No name namespace: data: " << data <<endl; }
运行结果如下图所示:
您可能感兴趣的文章:
相关文章推荐
- C++中map的相关用法及实例分析
- SmartTemplate 实例分析——基本语法[basic]之Hello_Word
- SmartTemplate 实例分析——基本语法[basic]之Nested_Blocks
- 一个C++开发App的代码实例分析
- 设计模式中的备忘录模式解析及相关C++实例应用
- C++中多态本质 实例分析
- lua和c/c++互相调用实例分析(转)
- C++ cin,_cin.get,cin.getline等函数深入分析+实例详解
- lua和c/c++互相调用实例分析
- c++语法相关
- 【C++学习】多态——解析树实例分析
- SmartTemplate 实例分析——基本语法[basic]之Special_Characters
- C++中的虚函数调用原理的反汇编实例分析(1)
- 用flex生成C++的文件实例分析
- (转载)lua和c/c++互相调用实例分析
- SmartTemplate 实例分析——基本语法[basic]之Alternating_Colors
- Notes-4:C++练习之LL(1)语法分析
- 【C++】C++实现LL(1)语法分析
- C++多态 虚(纯虚)函数 绑定详解及实例分析
- [zz]lua和c/c++互相调用实例分析