看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) 小弟是在課業上的問題 必須將手上的一個c++的程式改寫成c語言 但是因為對兩種都不熟 但是也不是不願意去找書來學習之類的 只是自學真的有時候不得其門兒入 不知道版上有對這兩個語言比較熟 而且可以讓我問語法的大哥大姐可以幫忙嗎 整之程式要改寫真的是有點困難 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) 小弟使用的是dev-c++ +++++++++++++++++++++++++++++++++++++++++++ 以下是原始碼的部份 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); }; +++++++++++++++++++++++++++++++++++++++++++++ 然後是遇到的錯誤 5 syntax error before "CRecord" 5 [Warning] no semicolon at end of struct or union 6 syntax error before '~' token 8 syntax error before '*' token +++++++++++++++++++++++++++++++++++++++++++++ 不好意思小弟弟一次在此發問題 如有錯誤會馬上改正 謝謝提醒 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.17.132.161
nowar100:是要發案or拿出code問困難的地方? 前者請至CodeJob 01/10 20:37
nowar100:後者請拿出你的東西來吧 謝謝 :) 01/10 20:37
devilarise:有問題, code就拿出來問, 沒code沒法回答...=_= 01/10 20:46
gary6296:class CRecord{ 01/10 21:07
gary6296:public: 01/10 21:07
gary6296:double mdPt[2]; 01/10 21:07
gary6296:public: 01/10 21:08
gary6296:CRecord() {}; 01/10 21:08
gary6296:virtual ~CRecord() {}; 01/10 21:08
gary6296:double distance(CRecord *to); 01/10 21:08
gary6296:}; 01/10 21:08
gary6296:恩請問像這樣子的話 我class是改成struc對嗎? 01/10 21:09
gary6296:後面的public我就沒用了 然後我去查virtual是虛擬函數 01/10 21:10
gary6296:可是不知道怎麼改寫 麻煩了 01/10 21:11
nowar100:大E可以修文 :) 01/10 21:26
devilarise:我記得struct好像就是public, 這個應該可以不用管 01/10 21:28
devilarise:其他就都同類別寫法&用法, 應該是沒啥問題 01/10 21:29
gary6296:struct我查書是寫宣告結構 好像跟pubilc不太一樣 01/10 21:37
gary6296:然後在第五行的時候就又說我語法錯了 01/10 21:38
james732:請修改文章,把原本的程式碼與修改後的貼上來 01/10 21:41
james732:並且附上你遇到的錯誤訊息 01/10 21:41
※ 編輯: gary6296 來自: 163.17.132.161 (01/10 21:52)
remmurds:基本上把c++改成c就好像要你回去穿小孩子的衣服一樣 01/10 23:23
remmurds:你所耗費的精力還不如直接用c重寫一遍 01/10 23:24
pizza0117:我不認同所有case都要重寫一遍 (理性討論 不是批評= =+) 01/11 07:57
pizza0117:因為我之前做過把C++轉C放到硬體上跑 01/11 07:58
pizza0117:我做了一些動作 1.找lib取代lib 01/11 07:59
pizza0117:2.拆開class 01/11 07:59
pizza0117:3.new&delete改malloc&free 01/11 07:59
pizza0117:4.call by referance改call by value/address 01/11 08:00
pizza0117:5.合併所有.h&.cpp成單一文件 01/11 08:02
pizza0117:因為自學 所以我的方法可能很蠢 但完成上述就能跑了 01/11 08:03
dendrobium:如果有virtual function的話就會很麻煩了...我覺得... 01/11 08:03
pizza0117:之後都在忙double改int (關鍵字fixed point) 01/11 08:04
pizza0117:可能我遇到的case比較簡單也說不定 01/11 08:04
tinlans:那就是回到 C 的 type code / function pointer 而已,但 01/11 09:10
tinlans:硬要 C++ -> C,如果我將來的兒子想說他想這樣搞,我一定 01/11 09:11
tinlans:先打死他。 01/11 09:11