假設有這麼個類,它將一個變量從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局部變量過小而導致形成棧溢出的指令,這個問題會導致系統不穩定,並且不定期崩潰
所以編程中應當儘量避免出現相同函數名和實現下的不同類結構