命令空间定义的流程和使用方法

 重点:

1.命名空间对于项目很庞大的时候,起到很重要的作用,它可以明确表示目前正在使用的函数和类所属的定义,不会发生歧义。

2.尽量使用命名空间,保证代码的规范性。

#include  
#include  
#include  
#include 

//定义一个名称
#ifndef TEST_NAMESAPCE
#define TEST_NAMESAPCE test
#endif

//定义一个命令空间的起始宏和结束宏
#if !defined(TEST_NAMESAPCE)
#define FIRTEST_TEST 
#else
#define FIRTEST_BEGIN_TEST namespace TEST_NAMESAPCE {
#define FIRTEST_END_TEST }
#endif

//定义一个Get和Set函数宏
#define DeclareName(name) \
virtual void Get##name(std::any& data); \
virtual void Set##name(std::any data);

//调用命名空间写一个类
FIRTEST_BEGIN_TEST
class TestClass
{
public:
	TestClass();
	~TestClass();

	DeclareName(Number);

private:
	int num{0};
};

TestClass::TestClass()
{
}

TestClass::~TestClass()
{
}

void TestClass::GetNumber(std::any& data)
{
	data = num;
}

void TestClass::SetNumber(std::any data)
{
	if (data.type() == typeid(int))
	{
		num = std::any_cast(data);
	}
}
//命令空间结束符
FIRTEST_END_TEST

//使用命令空间
using namespace TEST_NAMESAPCE;
int main()
{
	TestClass test;
	test.SetNumber(10);
	std::any data;
	test.GetNumber(data);
	if (data.type()==typeid(int))
	{
		std::cout << std::any_cast(data) << std::endl;
	}
	return 0;
}



你可能感兴趣的:(C++经验,c++,算法,开发语言)