看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) dev-C++ 小弟有自學c語言&c++,目前兩種語言都算能基本操作 小弟在這有個問題 書本上寫c語言不支援物件導向和運算子多載,只有c++支援 那為什麼我用c 寫一些物件class的東西 以及 運算子operator的程式 能夠正常執行呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.79.155.125 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1430914690.A.63B.html
Jockey66666: c沒有class 05/06 20:26
kwpn: 因為你用的編譯器是c++? 05/06 20:38
zxcv4982543: 可是我都是用c打,class也有物件功能耶... 05/06 20:39
zxcv4982543: 上面逗點請無視 05/06 20:40
BlazarArc: 你打class就不是c了啊...你的檔案被當作c++在編譯 05/06 20:50
suhorng: 把副檔名從 .cpp/.cc 改成 .c 試試 05/06 20:53
zxcv4982543: 那請問一下,我的程式內有printf/scanf,出來的檔案 05/06 21:04
zxcv4982543: 是cpp.所以這樣也是被當作c++編譯嗎? 05/06 21:05
zelkova: 你在編譯的時候 觀察編譯器紀錄就會發現差別 05/06 21:30
zelkova: 不同類型的編譯器 gcc只能編c語言 g++可以編c語言跟c++ 05/06 21:31
descent: 你要先搞清楚你用的是 c 還是 c++ 編譯器 05/06 21:34
descent: 最好的方式就是自己下編譯指令 05/06 21:34
suhorng: gcc 也能編 .cpp 就是......好好 link 函式庫就好 05/06 21:39
suhorng: 有 printf,scanf 沒有差別, .cpp 就是 C++ 05/06 21:40
zelkova: 那這樣? 不另外鏈結任何函式庫 gcc只能編c g++可編c跟c++ 05/06 22:03
james732: 我記得預設用gcc是可以編C++,但是吃不到library 05/06 22:21
yvb: int main(){class X{public:int x;}x={0};return x.x;} 05/06 22:23
yvb: 附檔名若為 .c, gcc 編不過... , 若為 .cc 就可以 :P 05/06 22:24
yvb: 也許可試著用 gcc -v ... 和 g++ -v ... 看看有些什麼差別? 05/06 22:32
zelkova: 編譯器會看的是內容 不是副檔名 http://goo.gl/ftLFDR 05/06 22:37
suhorng: 這篇講的就是 compiler 會看副檔名不是內容, 我誤會了嗎? 05/06 22:42
zelkova: 喔對講反了 所以gcc編.cpp會自動判斷不用link函式庫? 05/06 22:48
suhorng: 我也不確定 不過猜測是本來就沒 link C++, 是 g++ 才會主 05/07 03:31
suhorng: 動去 link 05/07 03:31
james732: gcc好像可以加參數來達到g++一樣的目的,但有點麻煩 05/07 11:38
zelkova: 我的gcc好像沒y大跟那文章這麼聰明 http://goo.gl/t3gGSr 05/07 21:35
zelkova: 程式都是 std::cout << "hello, world!" << std::endl; 05/07 21:36
yvb: 要 link libstdc++: gcc test.cpp -o test -lstdc++ 05/07 21:47
zelkova: y大編 .cc 有link嗎? 我以為你沒link編成功 05/07 21:58
zelkova: 連結那篇文章給我的意思也是這樣(? 05/07 22:00
yvb: 前面那個例子,只用c++語法class,完全沒用到std,當然不用link. 05/07 22:15
zelkova: 謝謝y大 用gcc編class成功 05/07 23:32
zelkova: 我以為它會偷偷去叫g++來做 進而編成功 看起來不是這樣 05/07 23:34
zelkova: 不過要用c++函式庫 還是要link 05/07 23:35