项目环境:windows visual studio 2003 C++
在一个项目中平时在debug版下没有遇到什么错误,连release版也不会出错,因为这个错是一个未定义的错误行为。但在debug版下加入“/GZ”编译选项后,运行时就会发现错误,原来是一个构造函数中调用了一个虚函数。通常在构造函数和析构函数中是不可以调用虚函数,因为这时对象并没有完成虚函数表的建立,所以在这时调用函数是很危险的。
项目环境:windows visual studio 2003 C++
在一个项目中平时在debug版下没有遇到什么错误,连release版也不会出错,因为这个错是一个未定义的错误行为。但在debug版下加入“/GZ”编译选项后,运行时就会发现错误,原来是一个构造函数中调用了一个虚函数。通常在构造函数和析构函数中是不可以调用虚函数,因为这时对象并没有完成虚函数表的建立,所以在这时调用函数是很危险的。