国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C++】day4學習成果:仿寫string類等等

這篇具有很好參考價值的文章主要介紹了【C++】day4學習成果:仿寫string類等等。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.仿照string類,完成myString 類
代碼:

#include <iostream>
#include <cstring>

using namespace std;

class myString
{
    private:
        char *str;          //記錄c風格的字符串
        int size;            //記錄字符串的實際長度
    public:
        //無參構造
        myString():size(10)
        {
            str = new char[size];         //構造出一個長度為10的字符串
            strcpy(str,"");         //賦值為空串
            cout<<"無參構造"<<endl;
        }
        //有參構造
        myString(const char *s)          //string  s("hello world")
        {
            size = strlen(s);
             str = new char[size+1];
             strcpy(str, s);
             cout<<"有參構造"<<endl;
        }

        //拷貝構造
        myString(const myString &other):
            str(new char(*other.str)),size(other.size)
        {
//            strcpy(str,"");         //賦值為空串
//            for(int i=0;i<this->size;i++)
//            {
//                str[i]=this->str[i];
//            }
            cout<<"拷貝構造成功"<<endl;
        }
        //析構函數(shù)
        ~myString()
        {
            delete str;
            str=nullptr;
        }
        //拷貝賦值函數(shù)
        myString & operator=(const myString &other)
        {
            if(this!=&other)
            {
                this->size=other.size;
                if(this->str!=NULL)
                {
                    delete this->str;
                }
                this->str=new char(*other.str);
            }
            cout<<"拷貝賦值成功"<<endl;
            return *this;
        }
        //判空函數(shù)
        bool empty()
        {
            if(strcmp(str,"")==0)
            {
                return true;
            }else {
                return false;
            }
        }
        //size函數(shù)
        int s_size()
        {
            return strlen(this->str);
        }
        //c_str函數(shù):返回字符串的首地址
        char *c_str()
        {
            return str;
        }
        //at函數(shù)
        char &at(int pos)
        {
            return str[pos];
        }
        //加號運算符重載
        const myString operator+(myString &s)const
        {
            myString c;
            c.size=this->size+s.s_size();
            c.str=this->str;
            strcat(c.str,s.str);
            return c;
        }
        //加等于運算符重載
        myString & operator+=(const myString &s)
        {
            this->size+=s.size;
            strcat(this->str,s.str);
            return  *this;
        }
        //關系運算符重載(>)
        bool operator>(const myString &s)const
        {
            if(strcmp(this->str,s.str)>0)
            {
                return true;
            }else {
                return false;
            }
        }
        //中括號運算符重載
        char & operator[](int index)
        {
            return this->str[index];
        }

        //查看函數(shù)
        void show()
        {
            cout<<"size="<<size<<endl;
            cout<<"s_size="<<s_size()<<endl;
            cout<<"str="<<str<<endl;
        }
};

int main()
{
    myString s1("hello");
    s1.show();

    myString s2(" world");
    s2.show();

    myString s3=s1+s2;
    s3.show();

    if(s1>s2)
    {
        cout<<"yes"<<endl;
    }else{ cout<<"no"<<endl; }

    return 0;
}

運行結果:
【C++】day4學習成果:仿寫string類等等,c++,學習,開發(fā)語言
2.思維導圖
【C++】day4學習成果:仿寫string類等等,c++,學習,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-706860.html

到了這里,關于【C++】day4學習成果:仿寫string類等等的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Go語言學習查缺補漏ing Day4

    Go語言學習查缺補漏ing Day4

    Go語言學習查缺補漏ing Day4 一、掌握iota的使用 請看下面這段代碼: 思考一下輸出結果會是什么? 先不公布輸出結果。先來談一談iota,iota是用于給需要自增長常量賦值的標識符。我們可以用下劃線 _ 來省略掉不想要的值。而我們中間給變量賦值了,然后如果后續(xù)的變量如果

    2024年02月15日
    瀏覽(22)
  • C++學習 Day15(string類)

    C 語言中,字符串是以 \\\'\\0\\\' 結尾的一些字符的集合,為了操作方便, C 標準庫中提供了一些 str 系列的庫函數(shù),但是這些庫函數(shù)與字符串是分離開的,不太符合OOP 的思想,而且底層空間需要用戶自己管理,稍不留神可能還會越界訪問。 在 OJ 中,有關字符串的題目基本以 stri

    2024年02月08日
    瀏覽(17)
  • c++ day4

    c++ day4

    ? ?

    2024年02月11日
    瀏覽(19)
  • 【驅動開發(fā)day4作業(yè)】

    【驅動開發(fā)day4作業(yè)】

    頭文件代碼 ?應用層代碼 ?驅動代碼

    2024年02月15日
    瀏覽(19)
  • C語言:選擇+編程(每日一練Day4)

    C語言:選擇+編程(每日一練Day4)

    1、 設變量已正確定義,以下不能統(tǒng)計出一行中輸入字符個數(shù)( 不包含回車符 )的程序段是( ) A: n=0;while(ch=getchar()!=\\\'n\\\')n++;? ? ?B: n=0;while(getchar()!=\\\'n\\\')n++; C: for(n=0;getchar()!=\\\'n\\\';n++);? ? ? ? ? ? ? D: n=0;for(ch=getchar();ch!=\\\'n\\\';n++); 答案解析:? ? ?? ????????對于for循環(huán),其

    2024年02月09日
    瀏覽(19)
  • C語言基礎語法跟練 day4

    C語言基礎語法跟練 day4

    41、牛牛有一個半徑為 r 的球,他想知道這個球的體積。 42、小樂樂比較懶惰,他現(xiàn)在想睡覺,然后再去學習。他知道現(xiàn)在的時刻,以及自己要睡的時長,想設定一個鬧鐘叫他起床學習,但是他太笨了,不知道應該把鬧鐘設定在哪個時刻,請你幫助他。(只考慮時和分,不考慮

    2024年01月20日
    瀏覽(29)
  • 【C語言】每日一題(半月斬)——day4

    【C語言】每日一題(半月斬)——day4

    ? 目錄 選擇題 1、設變量已正確定義,以下不能統(tǒng)計出一行中輸入字符個數(shù)(不包含回車符)的程序段是( ) 2、運行以下程序后,如果從鍵盤上輸入 65 14回車 ,則輸出結果為( )? 3、若運行以下程序時,從鍵盤輸入 ADescriptor回車 ,則下面程序的運行結果是( ) 4、如下函

    2024年02月07日
    瀏覽(17)
  • 嵌入式:驅動開發(fā) Day4

    嵌入式:驅動開發(fā) Day4

    驅動程序:myled.c 應用程序:test.c 頭文件:head.h

    2024年02月09日
    瀏覽(23)
  • 微服務學習Day4

    微服務學習Day4

    2024年02月19日
    瀏覽(22)
  • qt圖形化界面開發(fā)DAY4

    qt圖形化界面開發(fā)DAY4

    2024年01月23日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包