首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

为什么 "Life is short",而不

2024-12-14 来源:华拓网

life是以秒(Second)计算的。

比如我们算一个89岁的老人的生命那么就有89*365*24*60*60=2806704000超过了signed int的最大值2^15-1,当然不能用short了,但没有超过unsigned int的最大范围2^16-1

class TheElder{
    private: unsigned int life; 
             int VisitedCountries; 
             int Languages;
             int MusicalInstruments;
             …… 
    public: TheElder(int time,int CountryNumber,int LanguageNumber,int MusicalInstrumentNumber);
             void Recite(string title="GettysburgAddress" ); 
             void CombHair(); 
                         void ApplyForProfessor();
             void PlayWithThreeOwls(); 
              …… 
};

那我们就可以这样定义一个类了。可是life不应该是一个只与时间相关的字段,中国有句老话叫事在人为

class Hasi { 
    private: static time_t HisLife;
             time_t MyLife; 
             int LevelOfKnowledge; 
             int SilentDays;
    public: Hasi(time_t life) :MyLife(life) {} bool RejuvenateForHim(); 
            bool WearRedClothes(); 
};
            
bool Hasi::RejuvenateForHim() {
     if (HisLife>0) {
         HisLife++;
         cout << "Excited! +1 Sec!" << endl; 
         return true; 
        } 
     else {
        cout << "I'm angry!" << endl;
        return false;
        }
}

bool Hasi::WearRedClothes() {
     if (MyLife>0) { 
        HisLife += MyLife / 2.0;
        MyLife /= 2.0; 
        return true;
        }
        return false;
}

time_t GetHisCurrentLife() {
    struct tm* birth = new tm();
    time_t time=0; 
    birth->tm_year = 1926-1900;
    birth->tm_mon = 8 - 1;
    birth->tm_mday = 17 - 1;
    birth->tm_hour = 3;
    birth->tm_min = 0;
    birth->tm_sec = 1;
    birth->tm_wday = 1;
    birth->tm_yday = 260;
    time = mktime(birth);
    delete birth;
    return time;
 } 

time_t Hasi::HisLife = GetHisCurrentLife();

time_t也是用以秒计时的一种数据类型,实际上就是long,微软钦定用这个类型来表示时间,必然有他们的道理。这些方法也可以充分说明人定胜天。

一尺之棰,日取其半,万世不竭

——《庄子·天下篇》

既然大家都那么热情的给他增加生命,那么long也是不够的,早晚会溢出的。我们这个样子是不行的,所以必须开拓一下思路。

enum lifetime{
    finite, infinite
    };
enum Language{
    Chinese, English, Japanese, Romanian, Russian, Spanish, French 
    };
…… 
class TheElder{
    private: lifetime life;
    set<Language> languages;
    ……
    public: TheElder():
    life(infinite){}
    ……
}; 

class CommonPerson{
    private: lifetime life;
    Language NativeLanguage;
    ……
    public:
    CommonPerson():life(finite){}
    ……
};

小知不及大知,小年不及大年。奚以知其然也?朝菌不知晦朔,蟪蛄不知春秋,此小年也。楚之南有冥灵者,以五百岁为春,五百岁为秋。上古有大椿者,以八千岁为春,八千岁为秋。此大年也。而彭祖乃今以久特闻,众人匹之。不亦悲乎!

——《逍遥游》

当我们这些生命时长可以用数字计算的人在讨论life到底用什么数据类型可以存放的时候,生命时间无法用数值表达的人轻轻一推黑框眼镜,嘲笑道,你们啊,肤浅。我们对世界的认知总是逃不出自我的局限,因为我们都是普通人啊,怎么能去以我们的方式去理解一个不普通的生命呢?

显示全文