【发布时间】:2020-02-26 16:35:25
【问题描述】:
我正在尝试跟踪我将在 API 函数中输入的变量的值。 一种选择是重载赋值运算符并将一些代码放在那里。但是如何在类的成员变量上重载赋值运算符呢?
#include <iostream>
using namespace std;
template <class T>
class MonitoredVariable1
{
public:
MonitoredVariable1() { }
MonitoredVariable1(const T& value) : m_value(value) {}
operator T() const { return m_value; }
T val;
T& operator = (const T& value)
{
val = value;
m_value = value;
std::cout << "value updated" << " \n"; //THIS NEVER GET PRINTED!!!
return val;
}
private:
T m_value;
};
int main()
{
MonitoredVariable1<double> MonitoredVariable;
MonitoredVariable.val = 10.2;
std::cout << "main done..." << " \n";
return 0;
}
【问题讨论】:
标签: c++ class operator-overloading