int main() {
one.print(two, three);
cout << "HERE" << endl;
calculate(3, 1, 2, 3);
one.~tower();
two.~tower();
three.~tower();
system("PAUSE");
return 0;
}
皆さんこんにちは。ハノイの塔のパズルの解を出力するプログラム (c++) を作成しています。したがって、print というこの関数があり、うまく機能しますが、何らかの理由で後で main() に戻りません。
one.print(two, three)
そのため、メインのコマンドが実行されなくなった後。でテストを行ったのでわかりcout
ます。ただし、関数内のすべてのコマンドは問題なく実行されます。これが関数です。
void tower::print(tower two, tower three) {
for(int i = 0; i < no; i++) {
checkandprint(levels[i], no);
checkandprint(two.levels[i], no);
checkandprint(three.levels[i], no);
cout << endl;
}
for(int i = 0; i < 3; i++) {
bottoms(no);
}
cout << "Press enter to continue...";
cin.get();
cout << "here (end of function)" << endl;
}
tower
クラス内のその関数のプロトタイプは次のとおりです。
class tower {
public:
int no;
int *levels;
tower(int init, bool source);
~tower() {int *r = &no; delete r; delete [] levels;}
void print(tower two, tower three); //this one!
void bottoms(int rows);
void assign(int n);
void move(int dest);
};
何か案は?