• <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);????//?普通構造函數
            ?5?????String(const?String?&other);????????//?拷貝構造函數
            ?6?????~String(void);????????????????????????//?析構函數
            ?7?????String?&?operator?=(const?String?&other);????//?賦值函數
            ?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?????????//?不能讓新對象的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)?/*?因為是新構造一個對象,所以不需要像operator=一樣判斷自賦值及釋放原來的內存?*/
            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?????//?釋放原來的內存
            48?????delete?[]?m_data;
            49?
            50?????int?length?=?strlen(other.m_data);?/*?雖然m_data是private,但因為是在String的成員函數里,故沒問題?*/
            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;?/*?這兒調用的是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 閱讀(215) 評論(0)  編輯 收藏 引用

            久久无码中文字幕东京热| 伊人丁香狠狠色综合久久| 激情综合色综合久久综合| 国产AV影片久久久久久| 日产久久强奸免费的看| 男女久久久国产一区二区三区| 久久久婷婷五月亚洲97号色| 日韩欧美亚洲综合久久影院Ds| 久久丝袜精品中文字幕| 99久久国产亚洲高清观看2024 | 欧美一级久久久久久久大| 久久久久久久精品妇女99| 久久精品国产99国产精品| 99久久777色| 久久99精品久久久久久久久久 | 久久综合九色综合久99| 一本色道久久88综合日韩精品 | 香蕉久久一区二区不卡无毒影院| 久久精品国产一区二区三区不卡| 99久久国产精品免费一区二区| 久久综合亚洲色HEZYO国产| 男女久久久国产一区二区三区| 久久丝袜精品中文字幕| 久久er热视频在这里精品| 久久91亚洲人成电影网站| 老男人久久青草av高清| 久久嫩草影院免费看夜色| 久久青青草原国产精品免费| 国产99久久九九精品无码| 色狠狠久久AV五月综合| 亚洲精品午夜国产va久久| 亚洲精品97久久中文字幕无码| 久久精品免费一区二区三区| 伊人久久大香线蕉综合Av| 亚洲第一永久AV网站久久精品男人的天堂AV | 久久久久久国产a免费观看黄色大片 | 欧美大战日韩91综合一区婷婷久久青草 | 日本久久久久亚洲中字幕 | 久久99精品国产自在现线小黄鸭| 精品熟女少妇AV免费久久| 久久人人爽人人爽人人片AV东京热 |