[問題] c&c++的問題

看板C_and_CPP作者 (zxcv4982543)時間10年前 (2015/05/06 20:18), 編輯推噓5(5029)
留言34則, 9人參與, 最新討論串1/1
開發平台(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

05/06 20:26, , 1F
c沒有class
05/06 20:26, 1F

05/06 20:38, , 2F
因為你用的編譯器是c++?
05/06 20:38, 2F

05/06 20:39, , 3F
可是我都是用c打,class也有物件功能耶...
05/06 20:39, 3F

05/06 20:40, , 4F
上面逗點請無視
05/06 20:40, 4F

05/06 20:50, , 5F
你打class就不是c了啊...你的檔案被當作c++在編譯
05/06 20:50, 5F

05/06 20:53, , 6F
把副檔名從 .cpp/.cc 改成 .c 試試
05/06 20:53, 6F

05/06 21:04, , 7F
那請問一下,我的程式內有printf/scanf,出來的檔案
05/06 21:04, 7F

05/06 21:05, , 8F
是cpp.所以這樣也是被當作c++編譯嗎?
05/06 21:05, 8F

05/06 21:30, , 9F
你在編譯的時候 觀察編譯器紀錄就會發現差別
05/06 21:30, 9F

05/06 21:31, , 10F
不同類型的編譯器 gcc只能編c語言 g++可以編c語言跟c++
05/06 21:31, 10F

05/06 21:34, , 11F
你要先搞清楚你用的是 c 還是 c++ 編譯器
05/06 21:34, 11F

05/06 21:34, , 12F
最好的方式就是自己下編譯指令
05/06 21:34, 12F

05/06 21:39, , 13F
gcc 也能編 .cpp 就是......好好 link 函式庫就好
05/06 21:39, 13F

05/06 21:40, , 14F
有 printf,scanf 沒有差別, .cpp 就是 C++
05/06 21:40, 14F

05/06 22:03, , 15F
那這樣? 不另外鏈結任何函式庫 gcc只能編c g++可編c跟c++
05/06 22:03, 15F

05/06 22:21, , 16F
我記得預設用gcc是可以編C++,但是吃不到library
05/06 22:21, 16F

05/06 22:23, , 17F
int main(){class X{public:int x;}x={0};return x.x;}
05/06 22:23, 17F

05/06 22:24, , 18F
附檔名若為 .c, gcc 編不過... , 若為 .cc 就可以 :P
05/06 22:24, 18F

05/06 22:32, , 19F
也許可試著用 gcc -v ... 和 g++ -v ... 看看有些什麼差別?
05/06 22:32, 19F

05/06 22:37, , 20F
編譯器會看的是內容 不是副檔名 http://goo.gl/ftLFDR
05/06 22:37, 20F

05/06 22:42, , 21F
這篇講的就是 compiler 會看副檔名不是內容, 我誤會了嗎?
05/06 22:42, 21F

05/06 22:48, , 22F
喔對講反了 所以gcc編.cpp會自動判斷不用link函式庫?
05/06 22:48, 22F

05/07 03:31, , 23F
我也不確定 不過猜測是本來就沒 link C++, 是 g++ 才會主
05/07 03:31, 23F

05/07 03:31, , 24F
動去 link
05/07 03:31, 24F

05/07 11:38, , 25F
gcc好像可以加參數來達到g++一樣的目的,但有點麻煩
05/07 11:38, 25F

05/07 21:35, , 26F
我的gcc好像沒y大跟那文章這麼聰明 http://goo.gl/t3gGSr
05/07 21:35, 26F

05/07 21:36, , 27F
程式都是 std::cout << "hello, world!" << std::endl;
05/07 21:36, 27F

05/07 21:47, , 28F
要 link libstdc++: gcc test.cpp -o test -lstdc++
05/07 21:47, 28F

05/07 21:58, , 29F
y大編 .cc 有link嗎? 我以為你沒link編成功
05/07 21:58, 29F

05/07 22:00, , 30F
連結那篇文章給我的意思也是這樣(?
05/07 22:00, 30F

05/07 22:15, , 31F
前面那個例子,只用c++語法class,完全沒用到std,當然不用link.
05/07 22:15, 31F

05/07 23:32, , 32F
謝謝y大 用gcc編class成功
05/07 23:32, 32F

05/07 23:34, , 33F
我以為它會偷偷去叫g++來做 進而編成功 看起來不是這樣
05/07 23:34, 33F

05/07 23:35, , 34F
不過要用c++函式庫 還是要link
05/07 23:35, 34F
文章代碼(AID): #1LIWQ2Ox (C_and_CPP)