如何在 C++ 中使作用域变量成为全局变量?
How to make a scoped variable global in C++?
我正在处理一个大型项目,需要将作用域变量设置为全局变量,以便可以在整个项目中访问它 class。
可能使用它的一个简单场景是使整数 x
全局化。
class a
{
public:
a()
{
int x;
}
void print()
{
std::cout << x << std::endl;
}
}
更复杂的情况可能包括使 FunctionTypeClass<FunctionType> FunctionTypeDataStore
:
class thread
{
public:
template<typename FunctionType>
thread(FunctionType* function)
{
FunctionTypeClass<FunctionType> FunctionTypeDataStore;
}
FunctionTypeClass get_function_type()
{
return FunctionTypeDataStore;
}
~thread()
{
}
template<typename StoreFunctionTypeTemp>
class FunctionTypeClass
{
StoreFunctionTypeTemp Variable;
}
}
从中创建一个成员变量并模板化您的 class,而不是构造函数:
template<typename FunctionType>
class thread
{
private:
template<typename StoreFunctionTypeTemp>
class FunctionTypeClass
{
StoreFunctionTypeTemp Variable;
};
FunctionTypeClass<FunctionType> FunctionTypeDataStore;
public:
thread(FunctionType* function) { }
FunctionTypeClass<FunctionType> get_function_type()
{
return FunctionTypeDataStore;
}
};
我正在处理一个大型项目,需要将作用域变量设置为全局变量,以便可以在整个项目中访问它 class。
可能使用它的一个简单场景是使整数 x
全局化。
class a
{
public:
a()
{
int x;
}
void print()
{
std::cout << x << std::endl;
}
}
更复杂的情况可能包括使 FunctionTypeClass<FunctionType> FunctionTypeDataStore
:
class thread
{
public:
template<typename FunctionType>
thread(FunctionType* function)
{
FunctionTypeClass<FunctionType> FunctionTypeDataStore;
}
FunctionTypeClass get_function_type()
{
return FunctionTypeDataStore;
}
~thread()
{
}
template<typename StoreFunctionTypeTemp>
class FunctionTypeClass
{
StoreFunctionTypeTemp Variable;
}
}
从中创建一个成员变量并模板化您的 class,而不是构造函数:
template<typename FunctionType>
class thread
{
private:
template<typename StoreFunctionTypeTemp>
class FunctionTypeClass
{
StoreFunctionTypeTemp Variable;
};
FunctionTypeClass<FunctionType> FunctionTypeDataStore;
public:
thread(FunctionType* function) { }
FunctionTypeClass<FunctionType> get_function_type()
{
return FunctionTypeDataStore;
}
};