C++对象的生活生计期   
               添加时间:2013-5-15 点击量: 
 
              不合存储的对象生活生计期不合。所谓对象的生活生计期是指对象从被创建开端到被开释为止的时候。
 按生活生计期的不合对象可分为如下三种:
1、局部对象:当对象被定义时调用机关函数,该对象被创建,当法度退出定义该对象地点的函数体或法度块时,调用析构函数,开释该对象。
2、静态对象:当法度第一次履行所定义的静态对象时,该对象被创建,当法度停止时,该对象被开释。
3、全局对象:当法度开端时,调用机关函数创建该对象,当法度停止时调用析构函数开释该对象。
局部对象是被定义在一个函数体或法度块的,它的感化域小,生活生计期也短。
静态对象是被定义在一个文件中,它的感化域从定义时起到文件停止时为止,它的感化域斗劲大,它的生活生计期也斗劲大。
#include <iostream>
using namespace std;
int i = 1;            //i为全局变量,具有静态生活生计期
int main()
{
    static int a;    //a为静态局部变量,具有全局寿命,局部可见
    int b=-10;        //b,c为局部变量,具有动态生活生计期
    int c=0;        
    void other(void);
    cout <<-----MAIN------<<endl;
    cout <<i=<<i<<  a=<<a<<   b=<<b<<   c=<<c<<endl;
    c=c+8;
    other();
    cout<<-----MAIN-------<<endl;
    cout <<i=<<i<<  a=<<a<<   b=<<b<<   c=<<c<<endl;
    i=i+10;
    other();
    return 0;
    
}
void other(void)
{
    //a,b为静态局部变量,具有全局寿命,局部可见,只第一次进入函数是被初始化
    static int a=2;
    static int b;
            
    int c=10;
    a = a+2;
    i =i+32;
    c = c+5;
    
    cout<<-----OTHER-----<<endl;
    cout <<i=<<i<<  a=<<a<<   b=<<b<<   c=<<c<<endl;
    b=a;
}
运行成果
具有静态、动态生活生计期对象的时钟法度
#include <iostream>
using namespace std;
class Clock
{
public:
    Clock();
    void SetTime(int NewN,int NewM,int NewS);
    void ShowTime();
    ~Clock(){}
private:
    int Hour,Minute,Second;
};
Clock::Clock()
{
    
}
void Clock::SetTime(int NewN,int NewM,int NewS)
{
    Hour = NewN;
    Minute = NewM;
    Second = NewS;
}
void Clock::ShowTime()
{
    cout <<Hour<<:<<Minute<<:<<Second<<endl;
}
Clock globClock;
int main(int argc, char argv[])
{
    cout<<First Time Output:<<endl;
    globClock.ShowTime();
    globClock.SetTime(8,10,15);
    Clock myClock(globClock);
    cout <<Second Time Output:<<endl;
    myClock.ShowTime();
    return 0;
}
运行成果:
无论对感情还是对生活,“只要甜不要苦”都是任性而孩子气的,因为我们也不完美,我们也会伤害人。正因为我们都不完美,也因为生活从不是事事如意,所以对这些“瑕疵”的收纳才让我们对生活、对他人的爱变得日益真实而具体。—— 汪冰《世界再亏欠你,也要敢于拥抱幸福》
                     
                  
     
  
 
    
    
不合存储的对象生活生计期不合。所谓对象的生活生计期是指对象从被创建开端到被开释为止的时候。
 按生活生计期的不合对象可分为如下三种:
1、局部对象:当对象被定义时调用机关函数,该对象被创建,当法度退出定义该对象地点的函数体或法度块时,调用析构函数,开释该对象。
2、静态对象:当法度第一次履行所定义的静态对象时,该对象被创建,当法度停止时,该对象被开释。
3、全局对象:当法度开端时,调用机关函数创建该对象,当法度停止时调用析构函数开释该对象。
局部对象是被定义在一个函数体或法度块的,它的感化域小,生活生计期也短。
静态对象是被定义在一个文件中,它的感化域从定义时起到文件停止时为止,它的感化域斗劲大,它的生活生计期也斗劲大。
#include <iostream>
using namespace std;
int i = 1; //i为全局变量,具有静态生活生计期
int main()
{
static int a; //a为静态局部变量,具有全局寿命,局部可见
int b=-10; //b,c为局部变量,具有动态生活生计期
int c=0;
void other(void);
cout <<-----MAIN------<<endl;
cout <<i=<<i<< a=<<a<< b=<<b<< c=<<c<<endl;
c=c+8;
other();
cout<<-----MAIN-------<<endl;
cout <<i=<<i<< a=<<a<< b=<<b<< c=<<c<<endl;
i=i+10;
other();
return 0;
}
void other(void)
{
//a,b为静态局部变量,具有全局寿命,局部可见,只第一次进入函数是被初始化
static int a=2;
static int b;
int c=10;
a = a+2;
i =i+32;
c = c+5;
cout<<-----OTHER-----<<endl;
cout <<i=<<i<< a=<<a<< b=<<b<< c=<<c<<endl;
b=a;
}
运行成果
具有静态、动态生活生计期对象的时钟法度
#include <iostream>
using namespace std;
class Clock
{
public:
Clock();
void SetTime(int NewN,int NewM,int NewS);
void ShowTime();
~Clock(){}
private:
int Hour,Minute,Second;
};
Clock::Clock()
{
}
void Clock::SetTime(int NewN,int NewM,int NewS)
{
Hour = NewN;
Minute = NewM;
Second = NewS;
}
void Clock::ShowTime()
{
cout <<Hour<<:<<Minute<<:<<Second<<endl;
}
Clock globClock;
int main(int argc, char argv[])
{
cout<<First Time Output:<<endl;
globClock.ShowTime();
globClock.SetTime(8,10,15);
Clock myClock(globClock);
cout <<Second Time Output:<<endl;
myClock.ShowTime();
return 0;
}
运行成果:




