作者littleshan (我要加入劍道社!)
看板C_and_CPP
標題Re: [問題] 請問函式的引數若為另一函式,是否就不 …
時間Fri May 29 15:25:44 2009
※ 引述《Carbontube (碳管)》之銘言:
: 我想請問大大,這matrix class實做是要怎樣才會自己free呢?
class Matrix {
public:
Matrix(int m, int n)
: my_dim1(m), my_dim2(n), my_data(), my_data(new double[m*n])
{
// empty
}
Matrix(const Matrix& m); // TODO
~Matrix()
{
delete [] my_data;
}
double& operator()(int i, int j)
{
return my_data[i * my_dim2 + j];
}
Matrix& operator=(const Matrix& m); // TODO
private:
int my_dim1, my_dim2;
double *my_data;
};
如此一來就完成了一個簡單的 Matrix class
ctor 中會進行記憶體配置
dtor 中會釋放記憶體
還可以用 m(i, j) 的方式來存取其中的元素
請記得寫 copy constructor 以及 copy assignment
若你不寫,compiler 會產生一組預設的給你,但它是絕對會產生問題的
最後
在這個板上經常看到即使用 C++ 還是會對 class/struct 做 typedef 的程式碼
請記得 C++ 的 class/struct 名稱就是一個型別
所以不需要再對它們做 typedef 了
C code 才需要這麼做
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.163.145.14
推 zlw:Visual Studio專案預設值用太多,現在才知道純粹用C得typedef 05/29 15:34
推 Carbontube:看不懂opy constructor 以及 copy assignment 05/29 17:01
→ Carbontube:為何用預設的會出問題? QQ 05/29 17:01
→ Carbontube:還有請問TODO是什麼意思 是須補完備的意思嗎 05/29 17:02
推 legnaleurc:shallow copy 05/29 17:08
推 zlw:TODO是用來標記該行有待處理的工作,IDE軟體會搜尋出來,然後 05/29 17:17
推 zlw:列出一個工作清單,讓你看,其他類似有 FIX、UNDONE 看軟體 05/29 17:20
→ zlw:查了一下,Visual stdio 沒有 fixme 標記的樣子,還有HACK標記 05/29 17:22