我有一个模板类,如图所示。
template <class T>
class CValueEdit : public TextAreaWithOneWildcard
{
public:
CValueEdit() : m_bIsSelected(false)
{
m_Value = (T)0;
m_Step = (T)1;
m_MaxBoundary = (T)1;
m_MinBoundary = (T)0;
}
void setBoundaryValues(T max, T min)
{
m_MaxBoundary = max;
m_MinBoundary = min;
}
void setValue(T value)
{
m_Value = value;
}
void setStep(T step)
{
m_Step = step;
}
void incrementValue() // ++ operator overloading can be used here
{
m_Value += m_Step;
}
void decrementValue() // -- operator overloading can be used here
{
m_Value -= m_Step;
}
void getValue(T& ref_Value)
{
ref_Value = m_Value;
}
virtual void handleClickEvent()
{
m_bIsSelected = true;
}
bool isSelected()
{
return m_bIsSelected;
}
~CValueEdit(){}
private:
T m_Value, m_MaxBoundary, m_MinBoundary, m_Step;
bool m_bIsSelected;
};
我正在使用此类来存储可能是float或int的值。 TextAreaWithOneWildCard是触敏应用程序的窗口小部件类。 窗口中将有多个ValueEdit对象。
例如:
ValueEdit<float> m_pressure[3];
ValueEdit<int> m_time[3];
我需要在父窗口中注册触摸的窗口小部件的地址。
为此,我需要一个可以指向ValueEdit<float>
或ValueEdit<int>
的通用指针。我该如何声明指针?
如果用户触摸一个小部件,我希望此小部件注册指针
答案 0 :(得分:0)
我认为你应该注册一个指向EmailController::sendemail($ticketdata->email,$ticketdata);
的指针。然后有一些缺失:你会用这个指针做什么?如果您需要调用例如TextAreaWithOneWildcard
,那么您可以以某种方式公开setValue(T value)
类型(例如使用专用方法)并使用dynamic_cast。
这一行:
TextAreaWithOneWildcard
然后
class CValueEditBase : public TextAreaWithOneWildcard
{
public:
enum type_e {int_e, float_e} ;
virtual type_e type(void) const = 0 ;
}