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

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

Links booklink

Contact Us: admin [ a t ] ucptt.com