????mutalbe???????????“?????????”????constant????C++?е?const?????????
??????C++?У?mutable?????????const???????????????mutable???ε??????????????????????????????const?????С?
??????????????????????????????????????????????????????????????const??????????Щ????????????const?????????????Щ??????????????????????????????????mutalbe?????Ρ?
?????????????С?????
class ClxTest
{
public:
void Output() const;
};
void ClxTest::Output() const
{
cout << "Output for test!" << endl;
}
void OutputTest(const ClxTest& lx)
{
lx.Output();
}
??????ClxTest????????Output????????????????????????????????????const???
????????OutputTest?????????????????????????lx??Output????????????????????е??????????????????κγ???????????????????const???Ρ?
??????????????????????????????????????????????????????????????????????????????????????const???????Output????????????????????????????????????????????????????????????????Output??const??????????????????mutable??????——????mutalbe?????????????????????????ж??????
??????????????????????
class ClxTest
{
public:
ClxTest();
~ClxTest();
void Output() const;
int GetOutputTimes() const;
private:
mutable int m_iTimes;
};
ClxTest::ClxTest()
{
m_iTimes = 0;
}
ClxTest::~ClxTest()
{}
void ClxTest::Output() const
{
cout << "Output for test!" << endl;
m_iTimes++;
}
int ClxTest::GetOutputTimes() const
{
return m_iTimes;
}
void OutputTest(const ClxTest& lx)
{
cout << lx.GetOutputTimes() << endl;
lx.Output();
cout << lx.GetOutputTimes() << endl;
}
??????????m_iTimes??mutable???Σ?????????????const??????????const???ε????????????????