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)
在 main 中没有进一步的命令被执行之后。我知道是因为我用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);
};
有任何想法吗?