【发布时间】:2013-06-18 02:20:12
【问题描述】:
我正在尝试制作一个小包装类,例如
template <typename T>
class EdgeTriggeredState
{
public:
void Tick()
{
oldData = newData;
}
EdgeTriggeredState& operator =(const T& v)
{
newData = v;
return *this;
}
// T& operator = (void)
// {
// return oldData;
// }
// T& operator T()
// {
// return oldData;
// }
private:
T oldData;
T newData;
};
基本上,我希望能够将由类包装的值直接分配给 T 类型的变量。我已经尝试实现一个赋值(类型 T)运算符和一个类型 T 的强制转换运算符。我对我的 C++ 有点生疏,因为我一直只在 C 中工作。有没有办法在不创建的情况下实现它命名 getter 方法?
当我取消注释第一次实现尝试时出现错误
"../EdgeTriggeredState.h:19:21: 错误:'T& EdgeTriggeredState::operator=()' 必须只采用一个参数"
当我取消注释第二个实现(并注释掉第一个)时,我收到错误:
"../EdgeTriggeredState.h:24:16: error: return type specified for ‘operator T’"
【问题讨论】:
-
有什么问题?您之前尝试过的内容是否有任何错误?如果是这样,错误是什么?另外,能否请您发布您的演员操作员的实际代码?
标签: c++ casting operator-overloading