请大家来帮我实现我的荒谬的想法和设计!
我想用两个模板参数一个来描述类成员的类型,另外一个描述类成员的值
但是我能力有限希望大家能够实现这个设计!
问题1:
//设计请帮忙!?
template <class Type=int, int Val=10>
class TV
{
public:
。。。//构造函数如何写?
private:
。。。Type val;
};
问题2:
同时希望大家给出更好的想法或者设计!
[解决办法]
template <class Type=int, Type Val=10>
class TV
{
public:
。。。TV() : m_val(Val) {};
private:
。。。Type m_val;
};
[解决办法]
模板的非类型参数相当于一个常量。
template <typename Type=int, int Val=10> //这个val可以当作编译器的常量用
class A
{
A() : m_val(Val) {};//用val来初始化成员变量m_val
public:
Type m_val;
Type a[val]; //用Val当作数组的下标都没问题
}