spreadsheetcell.cpp
来自「C++高级编程这本书所附的源代码」· C++ 代码 · 共 79 行
CPP
79 行
#include "SpreadsheetCell.h"#include <iostream>#include <sstream>using namespace std;SpreadsheetCell::SpreadsheetCell() : mValue(0), mNumAccesses(0){}SpreadsheetCell::SpreadsheetCell(double initialValue) : mNumAccesses(0){ set(initialValue);}SpreadsheetCell::SpreadsheetCell(const string& initialValue) : mValue(stringToDouble(initialValue)), mString(initialValue), mNumAccesses(0){}SpreadsheetCell::SpreadsheetCell(const SpreadsheetCell& src){ mValue = src.mValue; mString = src.mString; mNumAccesses = src.mNumAccesses;}SpreadsheetCell& SpreadsheetCell::operator=(const SpreadsheetCell& rhs){ if (this == &rhs) { return (*this); } mValue = rhs.mValue; mString = rhs.mString; mNumAccesses = rhs.mNumAccesses; return (*this);}void SpreadsheetCell::set(double inValue){ mValue = inValue; mString = doubleToString(mValue);}void SpreadsheetCell::set(const string& inString){ mString = inString; mValue = stringToDouble(mString);}string SpreadsheetCell::doubleToString(double inValue){ ostringstream ostr; ostr << inValue; return (ostr.str());}double SpreadsheetCell::stringToDouble(const string& inString){ double temp; istringstream istr(inString); istr >> temp; if (istr.fail() || !istr.eof()) { return (0); } return (temp);}const SpreadsheetCell SpreadsheetCell::operator+( const SpreadsheetCell& cell) const{ SpreadsheetCell newCell; newCell.set(mValue + cell.mValue); // call set to update mValue and mString return (newCell);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?