首页 > 代码库 > C++ 拾遗补缺 namespace enum

C++ 拾遗补缺 namespace enum


namespace


写了两个命名空间,里面有同名的函数

[root@linux tmp]# cat main.cpp 
#include <iostream>
namespace space1
{
	void fun(void)
	{
		std::cout<<"space1 \n";
	}
}

namespace space2
{
	void fun(void)
	{
		std::cout<<"space2 \n";
	}
}

int main(void)
{
	fun();
	return 0;
}
没有指定命名空间,编译期间报错:
[root@linux tmp]# g++ main.cpp  && ./a.out 
main.cpp: In function ‘int main()’:
main.cpp:22: error: ‘fun’ was not declared in this scope
[root@linux tmp]#


using 一个命名空间

[root@linux tmp]# cat main.cpp 
#include <iostream>
namespace space1
{
	void fun(void)
	{
		std::cout<<"space1 \n";
	}
}

namespace space2
{
	void fun(void)
	{
		std::cout<<"space2 \n";
	}
}

using namespace space1;

int main(void)
{
	fun();
	return 0;
}
[root@linux tmp]# g++ main.cpp  && ./a.out 
space1 
[root@linux tmp]#


手动指定命名空间:

[root@linux tmp]# cat main.cpp 
#include <iostream>
namespace space1
{
	void fun(void)
	{
		std::cout<<"space1 \n";
	}
}

namespace space2
{
	void fun(void)
	{
		std::cout<<"space2 \n";
	}
}

int main(void)
{
	space1::fun();
	space2::fun();

	return 0;
}
[root@linux tmp]# g++ -Wall main.cpp  && ./a.out 
space1 
space2 
[root@linux tmp]#



枚举

[root@linux tmp]# cat main.c
# include <stdio.h>
enum weekday 
{
	sun,
	mon,
	tue,
	wed,
	thu,
	fri,
	sat
} day; 

int main()
{ 
	int k;
	printf("input a number(0--6) ");
	scanf("%d",&k);
	day=(enum weekday)k;
	switch(day) 
	{ 
		case sun:printf("sunday\n");break;
		case mon:printf("monday\n");break;
		case tue:printf("tuesday\n");break;
		case wed:printf("wednesday\n");break;
		case thu:printf("thursday\n");break; 
		case fri:printf("friday\n");break;
		case sat:printf("satday\n");break; 
		default:printf("input error\n");break;
	} 
	return 0;
} 
[root@linux tmp]# gcc main.c && ./a.out 
input a number(0--6) 2
tuesday
[root@linux tmp]# gcc main.c && ./a.out 
input a number(0--6) 0
sunday
[root@linux tmp]#







本文出自 “魂斗罗” 博客,请务必保留此出处http://990487026.blog.51cto.com/10133282/1864328

C++ 拾遗补缺 namespace enum