C++求助几个疑难杂症

eijiking 2009-04-04 07:51:29
环境。XP+VS2005。语言方法 C++ Win32 Console

1。在一个Solution中建立的类。类中包含有static变量或成员函数。给我感觉。若编译时这些static变量的初使值或函数体有变化时。编译器不是每次都对这些static量重新编译。导致执行结果没有变化。必须Rebuild Solution才行。请问是这样的吗?有什么解决办法吗。

2。在一个类中数据成员使用动态分配建立数组。在ctor中new。在dtor中delete。那么。如果我这个类中有某个成员函数在实现中声明并使用了本类的对象。那么在函数返回。或者说在这个对象自然销毁时(比如超出作用域范围)。那么这个对象在dtor中的delete行为一定会产生一个运行时错误。表明delete失败。请问这是为什么。若是动态的声明刚才提到的这个对象。那么似乎是可以解决。

3。请问整个程序中所有的动态分配内存的变量。在程序正常结束时。若没有被显式的销毁。那么是不是都会被隐式的销毁?会不会在程序结束后在内存中留下垃圾?

就是以上三个问题。

非常感谢各位的认真阅读和解答。谢谢。
...全文
32 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanlee007 2009-04-04
  • 打赏
  • 举报
回复
1.static类型变量的生存期很长,只要进行一次初始化,就将保持其值,直到下次改变其值为止。
2.在ctor中new需要在ctor中显示delete,因此在dtor中delete会错误的,不会自动调用析构函数,而是通过delete来调用析构函数。
3.必须显示的销毁吧!new就用delete,mallco就用free。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧