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

2025-05-27 0 37

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相关语法实例分析

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 C++ namespace相关语法实例分析 https://www.kuaiidc.com/76105.html

相关文章

发表评论
暂无评论