C++命名空间

命名空间:
命名空间是用来放置大型项目中出现重名的函数、变量或类。
比如说,同一个项目的不同模块中出现同名函数或者全局变量,是不可避免发生的情况。而命名空间恰好能解决这个问题。

命名空间中的声明:
关键字namespace后指定空间名,大括号里进行各种声明。

	namespace 空间名
	{
		//可以在此声明函数、变量、结构体...  (命名空间里的函数、变量、结构体可以和)
	}

命名空间中函数的定义:
在命名空间中声明的函数在定义时都必须在函数名前加上“空间名::”,以此来与全局或其他命名空间的函数进行区别。样式如下:

	返回值类型  空间名::函数名(参数列表)	//作用域运算符  “::” 
	{
		//函数体
	}

命名空间的指定:
1.可以使用作用域运算符“::”来指定命名空间。

   	liu::func();	//调用liu命名空间下的func()

2.可以使用using关键字指定命名空间的部分声明。

	using liu::func;
	func();		//调用liu命名空间下的func()

3.可以使用using关键字指定命名空间内的全部声明。

	using namespace liu;
	func();		//调用liu命名空间下的func()

在main.cpp中
1.

#include"test.h"

int main(int argc, char **argv)	

{								
	liu::func();	//第一种调用方法

	return 0;
}
#include"test.h"
	
int main(int argc, char **argv)
{
		using liu::func;
		func();		//第二种调用方法

		return 0;
}
#include"test.h"
using namespace liu;

int main(int argc, char **argv)
{
	func();			//第三种调用方法
	return 0;
}

在test.cpp中

#include"test.h"
#include<stdio.h>
int liu::val = 0;		//对于全局变量的定义

void liu::func()		//对于函数的定义
{
printf("hello world\n");
}

在test.h中

#ifndef  _TEST_H
#define  _TEST_H

namespace liu 
{
		exter int val;			//声明一个全局变量
		val void func();			//声明一个函数func 
}

#endif
编译:
g++ main.cpp test.cpp -g -Wall
./a.out
输出:
hello world
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值