[問題] copy constructor

作者: becoder (程式學習者)   2017-11-29 07:25:27
開發平台(Platform): (Ex: Win10, Linux, ...)
WIN10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
DEV C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
NONE
問題(Question):
http://joule.bu.edu/~hazen/progr/cppcen.html#l19
範例19中,我將程式碼複製到DEV C++上希望能跑,不過會當掉
最後的Bob會出問題
希望能說明怎麼回事
(我是C的使用者在學習C++,所以C++的概念較為薄弱)
餵入的資料(Input):

預期的正確結果(Expected Output):
不會當掉
錯誤結果(Wrong Output):
會當掉
程式碼(Code):(請善用置底文網頁, 記得排版)
http://joule.bu.edu/~hazen/progr/cppcen.html#l19
補充說明(Supplement):
希望可以說明觀念
作者: s4300026 (s4300026)   2017-11-29 07:26:00
你的程式碼
作者: loveflames (咕啾咕啾魔法陣)   2017-11-29 08:03:00
copy ctor少一個const,就這樣
作者: ilikekotomi (Young)   2017-11-29 11:06:00
看code是寫法有問題 https://goo.gl/6dysnZ文章是我隨便找的 但建議先看一下釐清觀念
作者: peterwu4 (notd)   2017-11-29 12:48:00
你在各個ctor、dtor刷刷訊息就明白了最後那個呼叫的不是copy ctor
作者: Caesar08 (Caesar)   2017-11-29 14:18:00
怎麼沒有copy assignment operator?
作者: loveflames (咕啾咕啾魔法陣)   2017-11-29 14:38:00
現在提rule of 3/5太早
作者: ilikekotomi (Young)   2017-11-29 15:07:00
http://pythontutor.com/cpp.html#mode=edit這個網站還不錯 感覺你應該還不會用IDE debug不訪先將code貼進去跑跑看 希望你可以發現問題
作者: peterwu4 (notd)   2017-11-29 15:35:00
樓上的東西真的不錯~ 程式少了一個copy assignperson &operator=(const person &s) {strcpy(name, s.name); age = s.age; return *this; }
作者: eye5002003 (下一夜)   2017-11-29 21:25:00
為何一個建構子有new char而另一個沒有?都要new啊

Links booklink

Contact Us: admin [ a t ] ucptt.com