gpt4 book ai didi

C++ namespace相关语法实例分析

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章C++ namespace相关语法实例分析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

namespace命名空间是C++中一个非常重要的概念,本文实例展示了namespace的相关语法,供大家参考。具体如下:

本段测试代码包括如下内容:

(1) 如何访问namespace中声明的名称; (2) namespace导致的相关冲突; (3) namespace可嵌套; (4) 可以在namespace中使用using声明和using编译命令; (5) 未命名的namespace:其作用域为定义该namespace所在的声明区域。C++推荐用来替代static定义静态变量.

具体程序代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#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++ namespace相关语法实例分析

最后此篇关于C++ namespace相关语法实例分析的文章就讲到这里了,如果你想了解更多关于C++ namespace相关语法实例分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com