关于MSVC下QT项目的警告级别

关于MSVC下QT项目的警告级别:

用MSVC创建一个QT 项目.似乎是自动设置成最低级别,WARNNING 1 ! 记住一定要自己设置回第三级别! 否则,无数C++中会导致万劫不复的错误会被编译器放过 。举个例子:
===================
A.h
===================
class A
{
public :
A()
{
m_buf = new char[1024*1024*1024];//en ,... 1G ...just see see
};
virtual ~A()
{
printf("Oh A destroyed/n");
delete []m_buf;
};
private:
char* m_buf;
};


====================
C.h
====================
class A;
class C
{
 public:
 C():m_a(0)
 {
  
 }; 
 virtula ~C()
 {
  if (m_a)
   delete m_a;
 }
private:
 A* m_a;
};

====================
D.h
====================
#include "C.h"
#include "a.h"
class D: public C
{
public :
D()
{
m_a = new A;
};
~D()
{
printf("oh D destroyed/n");
};
}

 

===================
main.cpp
===================
#include "D.h"
int main()
{
C* d = new D;
delete d;
}

OK, 下面,不要编译,把VC 的警告级别甚至成 /W1 。 然后,编译顺利通畅。
假象的运行结果是 经过~D()后,经过~C(), 接着m_a被销毁。
真正结果呢。~A()根本没有被执行过.  智者会痛骂, W3 明明告诉你 main.cpp根本没找到~A()定义....恩恩, 说完了...

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值