我试图与构造函数和析构函数一起玩,但我不能让星星一个接一个地消失(而不是一起消失).
有任何想法吗?
谢谢,
里
对不起 – 忘了提我正在使用c
我目前的访问违反了无用的代码:
class star { int x; int y;public: star(){ x = rand()%80; y = rand()%80; PaintcharOnRandomLocation('*',x,y); }; ~star(){ PaintcharOnRandomLocation(' ',y); };};class printAll{ star* arr;public: printAll(){ arr = new star[100]; }; ~printAll(){ delete[] arr; };};voID donothing(printAll L){};voID main(){ srand ( time(NulL) ); donothing(printAll()); getch();};解决方法 似乎没有循环/递归的唯一方法是这样的:
class Star{ Star() { //constructor shows star in a a random place } ~Star() { //destructor removes star and sleeps for a random amount of time }};int main() { Star S[100];}
这实际上只是一个愚蠢的技巧,因为编译器必须运行每个星的构造函数来初始化数组,然后运行EACH star的析构函数,因为它超出了范围.
这也是一个糟糕的伎俩,因为主要功能中的所有工作都是不透明和不可见的.在这种情况下使用循环显然会更好,并且在这样的析构函数中放置延迟实际上是令人困惑和不可维护的.
总结以上是内存溢出为你收集整理的构造函数和析构函数 – c全部内容,希望文章能够帮你解决构造函数和析构函数 – c所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)