[問題] 關於member function回傳問題

作者: nick982009 (dragon)   2016-05-26 21:13:10
開發平台(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
作者: Caesar08 (Caesar)   2016-05-26 21:19:00
你後面是不是有code沒補上來?
作者: LPH66 (-6.2598534e+18f)   2016-05-26 21:46:00
你找個置底空間貼個完整程式碼吧不過我會猜是由於各種原因造成的 double free
作者: Caesar08 (Caesar)   2016-05-26 21:48:00
↑ 水晶球要發威了嗎!?
作者: loveflames (咕啾咕啾魔法陣)   2016-05-26 22:12:00
欠噓啊?一堆...叫人用心電感應嗎
作者: bibo9901 (function(){})()   2016-05-26 22:14:00
有 *array 又沒寫 copy ctor 和 dtor這樣還沒雷的話才需要問XD
作者: wtchen (沒有存在感的人)   2016-05-26 22:22:00
要提供完整資訊別人才好幫你阿
作者: Caesar08 (Caesar)   2016-05-26 22:50:00
default constructor的dim沒設定
作者: nick982009 (dragon)   2016-05-26 23:59:00
感謝樓上...真的因為dim沒設因為在還沒寫inpendetSet()之前,都完全沒出現問題可以請問一下原因為什麼嗎,感謝我一直以為是不能那樣回傳..
作者: ilikekotomi (Young)   2016-05-27 01:30:00
可以把dim的值印出來看 可能是運氣好剛好都過

Links booklink

Contact Us: admin [ a t ] ucptt.com