作者nick982009 (DRAGON)
看板C_and_CPP
標題[問題]關於member function回傳問題
時間Thu May 26 21:13:10 2016
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Code::Blocks
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
先自己寫一個class Vec ,裡面有一個member function inpendentSet()
在主程式需要可以執行以下:
Vec vec1;
Vec vec2;
vec1 = vec2.inpendentSet();
想問這樣在class裡應該要如何寫,inpendentSet()回傳型態必須要自己本身的物件
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
我把它寫成底下這樣
class Vec
{
int *array;
int dim;
public:
Vec();
Vec(int *row, int n);
Vec inpendetSet();
};
Vec::Vec()
{
.....
}
Vec::Vec(int *row, int n)
{
.....
}
Vec Vec::inpendetSet()
{
Vec NewArray;
.....
.....
return NewArray;
}
int main()
{
.....
.....
Vec vec1;
.....(vec1已經有值)
Vec vec2;
vec2 = vec1.inpendentSet();
}
我這樣寫好像不行,compile會過,但執行出來會有錯誤然後當掉。
補充說明(Supplement):
C++新手,拜託各位大大解答,感謝><
補上完整程式碼:
http://codepad.org/jtzdv7lI
感謝大家qq
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.127.224.113
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1464268394.A.A41.html
→ Caesar08: 你後面是不是有code沒補上來? 05/26 21:19
推 LPH66: 你找個置底空間貼個完整程式碼吧 05/26 21:46
→ LPH66: 不過我會猜是由於各種原因造成的 double free 05/26 21:46
→ Caesar08: ↑ 水晶球要發威了嗎!? 05/26 21:48
噓 loveflames: 欠噓啊?一堆...叫人用心電感應嗎 05/26 22:12
推 bibo9901: 有 *array 又沒寫 copy ctor 和 dtor 05/26 22:14
→ bibo9901: 這樣還沒雷的話才需要問XD 05/26 22:15
→ wtchen: 要提供完整資訊別人才好幫你阿 05/26 22:22
※ 編輯: nick982009 (120.127.224.113), 05/26/2016 22:39:45
→ Caesar08: default constructor的dim沒設定 05/26 22:50
→ nick982009: 感謝樓上...真的因為dim沒設 05/26 23:59
→ nick982009: 因為在還沒寫inpendetSet()之前,都完全沒出現問題 05/27 00:00
→ nick982009: 可以請問一下原因為什麼嗎,感謝 05/27 00:02
→ nick982009: 我一直以為是不能那樣回傳.. 05/27 00:03
→ ilikekotomi: 可以把dim的值印出來看 可能是運氣好剛好都過 05/27 01:30