• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            HUUYUU

            CString Class Programming!

            1?class?String
            ?2?{
            ?3?public:
            ?4?????String(const?char?*str?=?NULL);????//?普通構(gòu)造函數(shù)
            ?5?????String(const?String?&other);????????//?拷貝構(gòu)造函數(shù)
            ?6?????~String(void);????????????????????????//?析構(gòu)函數(shù)
            ?7?????String?&?operator?=(const?String?&other);????//?賦值函數(shù)
            ?8?????const?char*?operator()(void)?const;
            ?9?private:
            10?????char??????*m_data;????????????????//?用于保存字符串
            11?};
            12?
            13?
            14?String::~String(void)
            15?{
            16?????delete[]?m_data;
            17?}
            18?
            19?String::String(const?char*?str)
            20?{
            21?????if(NULL?==?str)
            22?????{
            23?????????//?不能讓新對(duì)象的m_data為NULL
            24?????????m_data?=?new?char[1];
            25?????????*m_data?=?'\0';
            26?????}????
            27?????else
            28?????{
            29?????????int?length?=?strlen(str);
            30?????????m_data?=?new?char[length?+?1];
            31?????????strcpy(m_data,?str);
            32?????}
            33?}
            34?
            35?String::String(const?String&?other)?/*?因?yàn)槭切聵?gòu)造一個(gè)對(duì)象,所以不需要像operator=一樣判斷自賦值及釋放原來(lái)的內(nèi)存?*/
            36?{
            37?????int?length?=?strlen(other.m_data);
            38?????m_data?=?new?char[length?+?1];
            39?????strcpy(m_data,?other.m_data);
            40?}
            41?
            42?String&?String::operator?=(const?String&?other)
            43?{
            44?????//?判斷自賦值
            45?????if(this?==?&other)
            46?????????return?*this;
            47?????//?釋放原來(lái)的內(nèi)存
            48?????delete?[]?m_data;
            49?
            50?????int?length?=?strlen(other.m_data);?/*?雖然m_data是private,但因?yàn)槭窃赟tring的成員函數(shù)里,故沒(méi)問(wèn)題?*/
            51?????m_data?=?new?char[length?+?1];
            52?????strcpy(m_data,?other.m_data);
            53?
            54?????return?*this;
            55?
            56?}
            57?
            58?const?char?*?String::operator()()?const
            59?{
            60?????return?(const?char*)m_data;
            61?}
            62
            63?int?_tmain(int?argc,?_TCHAR*?argv[])
            64?{
            65?????String?str("hello");
            66?????String?str1?=?str;?/*?這兒調(diào)用的是copy?constructor,非?operator=,?why??*/
            67?????printf("%s\n",?str1);
            68?
            69?????const?char*?str2?=?str();
            70?????printf("%s\n",?str2);
            71?
            72?????return?0;
            73?}

            posted on 2006-07-28 12:56 HUYU 閱讀(226) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久九九久精品国产| 亚洲AV日韩精品久久久久| 精品久久久久久无码免费| 久久亚洲精品无码观看不卡| 一本大道久久东京热无码AV| 亚洲中文字幕无码久久精品1 | 青草影院天堂男人久久| 久久久久久一区国产精品| 婷婷久久久亚洲欧洲日产国码AV| 亚洲综合婷婷久久| 无码专区久久综合久中文字幕 | 亚洲AV无码成人网站久久精品大| 51久久夜色精品国产| 99精品国产99久久久久久97| 99久久国产综合精品成人影院| 久久免费看黄a级毛片| 精品无码人妻久久久久久| 国产午夜精品久久久久免费视| 亚洲国产精品狼友中文久久久| 久久香蕉国产线看观看99| 久久精品人人槡人妻人人玩AV| 国产精品美女久久福利网站| 久久中文字幕无码专区| 99久久免费国产精品热| 无码AV波多野结衣久久| 久久综合亚洲鲁鲁五月天| 久久久久国产一区二区| 一本久久久久久久| 伊人色综合久久天天| 青青草原综合久久大伊人精品| 国产成人久久精品区一区二区| 久久精品国产亚洲av麻豆色欲 | 久久91精品国产91| 性做久久久久久久久老女人| 久久久91人妻无码精品蜜桃HD| 精品久久久久国产免费| 国产精品美女久久久久AV福利| 久久综合丁香激情久久| 国内精品伊人久久久久网站| 日本精品一区二区久久久| 综合久久给合久久狠狠狠97色 |