C++命名空间

C++ 命名空间

C++为了区分多个xyz的函数的时候,需要使用命名空间进行区分。

定义命名空间

#include <iostream>
using namespace std;

// 第一个命名空间
namespace first_space{
	void func(){
		cout << "func_first_space" << endl;
	}
}

// 第二个命名空间
namespace second_space{
	void func(){
		cout << "second_space_func" << endl;
	}
}

int main(){
	// 调用第一个命名空间的函数
	first_space::func();	// 调用first_space命名空间下的func函数

	// 调用第二个命名空间的函数
	second_space::func();	// 调用second_space命名空间的fuc函数

	return 0;
}
PS C:\Users\mingm\Desktop\cpp> ./a.exe
func_first_space
second_space_func

using

使用using告诉编译器使用哪个命名空间。

#include <iostream>
using namespace std;	// 使用了默认的主命名空间

// 第一个命名空间
namespace first_space{
	void func(){
		cout << "first_space" << endl;
	}
}

// 第二个命名空间
namespace second_space{
	void func(){
		cout << "second_space" << endl;
	}
}

using namespace first_space;	// 使用了first_space作为命名空间
int main(){
	// 调用第一个命名空间的函数
	func();

	return 0;
}

其他

命名空间可以不连续,可以嵌套

模板

模板是创建泛型类或函数的蓝图和公式。

库容器,迭代器,算法,都是泛型的栗子

#include <iostream>
#include <string>

using namespace std;

template<typename T>	// T为函数所使用的数据类型的占位符名称。
inline T const& Max(T const& a, T const& b){	// 使用内联函数 inline
	return a < b ? b:a;
}
int main(){
	int i = 39;
	int j = 20;
	cout << " " << Max(i,j) << endl;	// 此时T为int类型 

	double f1 = 13.5;
	double f2 = 20.7;
	cout << " " << Max(i, j) << endl;	// 此时T为double类型

	return 0;
}

www.iming.info

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员同行者

python3 内置函数详解

22930
来自专栏python3

python-其它有用模块1

re模块是文件处理中必不可少的模块,它主要应用于字符串的查找,定位等等,在使用网络爬虫时,即使没有爬虫框架,re模块配合urllib.request模块也可以完...

9220
来自专栏数据结构与算法

1002. 三角形 (

题目描述 输入三角形三边长a,b,c(保证能构成三角形),输出三角形面积。 输入 一行三个用一个空格隔开的实数a,b,c,表示三角形的三条边长。 输出 输出三角...

41060
来自专栏WD学习记录

js学习2016-8-16

    当一个函数被保存为对象的一个属性时,我们称它为一个方法。如果调用表达式包含一个提取属性的动作,(即我们讲解对象时所说的.操作符),那么它就被当做一个方法...

8610
来自专栏java小白

JAVA协变返回类型

21240
来自专栏Crossin的编程教室

【Python 第71课】变量的作用域

在写代码的时候,免不了要使用变量。但程序中的一个变量并不一定是在哪里都可以被使用,根据情况不同,会有不同的“有效范围”。看这样一段代码: def func(x)...

333110
来自专栏java一日一条

常见Java面试题 – 第三部分:重载(overloading)与重写(overriding)

这篇文章介绍的常见面试题是关于重载(overloading)方法和重写(overriding)方法的。Q.下面代码片段的输出结果是什么?

9020
来自专栏黑泽君的专栏

对象数组的内存图解

对象数组的概述和案例(掌握) (1)对象数组的概述     数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。 (...

17020
来自专栏领域驱动设计DDD实战进阶

07-TypeScript的For循环

在传统的JavaScript中,关于循环,可以有两种方式,一种是forEach,一种是for。 forEach的用法如下: var sarr=[1,2,3,4]...

36640
来自专栏开发与安全

从零开始学C++之RTTI、dynamic_cast、typeid、类与类之间的关系uml

一、RTTI Run-time type information (RTTI) is a mechanism that allows the type of a...

21380

扫码关注云+社区

领取腾讯云代金券