📄 spreadsheet.cpp
字号:
#include "Spreadsheet.h"int Spreadsheet::sCounter = 0;// Microsoft Visual Studio requires you to omit the following two lines.// However, some compilers require them.//const int Spreadsheet::kMaxHeight;//const int Spreadsheet::kMaxWidth;bool Spreadsheet::inRange(int val, int upper){ return (val >= 0 && val < upper);}Spreadsheet::Spreadsheet(const SpreadsheetApplication& theApp, int inWidth, int inHeight) : mWidth(inWidth < kMaxWidth ? inWidth : kMaxWidth), mHeight(inHeight < kMaxHeight ? inHeight : kMaxHeight), mTheApp(theApp){ mId = sCounter++; mCells = new SpreadsheetCell* [mWidth]; for (int i = 0; i < mWidth; i++) { mCells[i] = new SpreadsheetCell[mHeight]; }}void Spreadsheet::setCellAt(int x, int y, const SpreadsheetCell& cell){ if (!inRange(x, mWidth) || !inRange(y, mHeight)) { return; } mCells[x][y] = cell;}SpreadsheetCell Spreadsheet::getCellAt(int x, int y){ SpreadsheetCell empty; if (!inRange(x, mWidth) || !inRange(y, mHeight)) { return (empty); } return (mCells[x][y]);}Spreadsheet::~Spreadsheet(){ for (int i = 0; i < mWidth; i++) { delete [] mCells[i]; } delete [] mCells;}void Spreadsheet::copyFrom(const Spreadsheet& src){ int i, j; mWidth = src.mWidth; mHeight = src.mHeight; mCells = new SpreadsheetCell* [mWidth]; for (i = 0; i < mWidth; i++) { mCells[i] = new SpreadsheetCell[mHeight]; } for (i = 0; i < mWidth; i++) { for (j = 0; j < mHeight; j++) { mCells[i][j] = src.mCells[i][j]; } }}Spreadsheet::Spreadsheet(const Spreadsheet& src) : mTheApp(src.mTheApp){ mId = sCounter++; copyFrom(src);}Spreadsheet& Spreadsheet::operator=(const Spreadsheet& rhs){ int i; // check for self-assignment if (this == &rhs) { return (*this); } // free the old memory for (i = 0; i < mWidth; i++) { delete [] mCells[i]; } delete [] mCells; // copy the new memory copyFrom(rhs); return (*this);}int Spreadsheet::getId(){ return (mId);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -