Re: [問題] C++改寫成C
※ 引述《gary6296 (跳跳佑)》之銘言:
: +++++++++++++++++++++++++++++++++++++++++++
: 以下是原始碼的部份
: class CRecord{
: public:
: double mdPt[2];
: public:
: CRecord() {};
: virtual ~CRecord() {};
: double distance(CRecord *to);
: };
: +++++++++++++++++++++++++++++++++++++++++++++
: 以下是我自己改寫的部份
: struct CRecord
: {
: double mdPt[2];
: CRecord() {};
: virtual ~CRecord() {};
: double distance(CRecord *to);
: };
: +++++++++++++++++++++++++++++++++++++++++++++
在 C 語言裡,struct 裡面不能有 member function
也就是說上面三行紅色的都是不合法的
可能要改成這個樣子
void CRecord_constructor(struct CRecord *record);
void CRecord_destructor(struct CRecord *record);
double CRecord_distance(struct CRecord *from, struct CRecord *to);
在 C++ 裡面,可以省略掉 class 或 struct 關鍵字(上例綠色的部份)
但 C 語言是不能省掉的,一定要寫出來
當然,你的函式改成這樣子,呼叫這些函式的地方也必須做對應的修改
譬如
d = record1.distance(&record2);
可能要改成
d = CRecord_distance(&record1, &record2);
把 C++ 全面改寫成 C 是一件不小的工程...只能說加油了
希望你的程式裡沒有牽扯到太多的繼承與多型....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.171.46
※ 編輯: james732 來自: 140.117.171.46 (01/10 22:15)
推
01/10 22:22, , 1F
01/10 22:22, 1F
推
01/10 22:52, , 2F
01/10 22:52, 2F
推
01/10 23:02, , 3F
01/10 23:02, 3F
→
01/10 23:05, , 4F
01/10 23:05, 4F
推
01/10 23:15, , 5F
01/10 23:15, 5F
→
01/10 23:16, , 6F
01/10 23:16, 6F
→
01/10 23:17, , 7F
01/10 23:17, 7F
→
01/11 00:53, , 8F
01/11 00:53, 8F
推
01/11 13:01, , 9F
01/11 13:01, 9F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章