看板 EE_DSnP 關於我們 聯絡資訊
恩我省略了部份程式碼,buffer是一個string(全域)在main中由檔案輸入的 buffersize也在main裡決定(且是全域變數) class Char{ friend class Bomb; public: Char():_numChar(0){} void genChar(); void toScreen(); private: int _numChar; vector<Bomb*> _bomb; }; class Bomb{ public: Bomb(char); char getCh(){return _ch;} int& getColumn(){return _column;} int& getRow(){return _row;} private: char _ch; int _column; int _row; }; //main 呼叫一次,產生所有的bomb void Char::genChar(){ for(int i=0;vector<Bomb*>::iterator it=_bomb.begin(); i<bufferSize;i++,it++) *it=new Bomb(buffer[i]); ^^^^^^^^^^^^^^^^^^^^^^^^ //這行存取違規 } //在main中被循環呼叫 讓字母(Bomb)往下掉 void Char::toScreen(){ if(_numChar<bufferSize) _numChar++; int i=0; for(vector<Bomb*>::iterator it=_bomb.begin(); i<_numChar;i++,it++){ int &col=(*it)->getColumn(); int &row=(*it)->getRow(); ^^^^^^^^^^^^^^^^^^^^^^^^^ //這裡也會存取違規 if((*it!=(Bomb*)DELETED)||(*it!=(Bomb*)FAIL)){ screen[col][row++]=(*it)->getCh(); } if (((*it)->getRow()==Row)||(*it)->checkBelow()){ delete *it; (*it)=(Bomb*)FAIL; } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.240.243 ※ 編輯: BloodyDuke 來自: 140.112.240.243 (01/16 23:20)