假设有这么个类,它将一个变量从0临时变为1: 我们做2份:
(1)放到工程内的stdafx。h形成预编译头
class CA
{
public :
CA(int* pToBeSet1){
m_pInt=(*pToBeSet1) ;
(*pToBeSet1)=1;//临时将一个变量改为1
}
~CA(){
(*m_pInt)=0;//还原
}
BYTE x[128];
int* m_pInt;
}
(2)外部头x.h
class CA
{
public :
CA(int* pToBeSet1){
m_pInt=(*pToBeSet1) ;
(*pToBeSet1)=1;//临时将一个变量改为1
}
~CA(){
(*m_pInt)=0;//还原
}
int* m_pInt;
}
调用者
#include 《x.h》
Init()
{
int x=0;
{
CA auto_change(&x);
}
}
由于内联函数可能内联了stdafx中的代码而由于#include 《x.h》导致计算init局部变量过小而导致形成栈溢出的指令,
这个问题会导致系统不稳定,并且不定期崩溃
所以编程中应当尽量避免出现相同函数名和实现下的不同类结构