2013-04-03 127 views
-2

在C#中過了一段時間後,我決定鑽研C++,因爲我喜歡編程視頻遊戲。 C++廣泛用於整個行業,所以我想給它一個機會。C++基礎知識

我注意到的第一件事是,C++似乎並沒有使用「對象」的方式C#一樣。在C#中,所有編程都是在對象(即類)中完成的,沒有方法可以在一個之外聲明,甚至不是一個入口點。

C++似乎用這個,但不經常,有時它似乎是更一種事後的,或許我完全誤解在C「類/對象」 ++的目的。

這使我對另一件事感到困惑:標題。從我可以收集的內容來看,這是您定義要在程序中使用的對象/方法的地方。這是主程序的一個框架。

基本上我很困惑項目組成。我試圖使用這個像C#,但'鼻涕工作。理想情況下,這裏有人熟悉這兩種語言,可以幫助縮小差距,但只是簡單地解釋一下普通的C++程序結構就足夠了。

非常感謝您提前!

P.S.我想,有可能是沒有這樣的事情「公共」 C++結構,但對象和方法或缺乏他們之間的關係是什麼,我正在尋找

+1

你的問題具體是什麼?我們很樂意提供幫助,但SO格式期望您提供明確答案的具體問題。你可能想把它分成幾個更小的問題。 – templatetypedef 2013-04-03 22:52:12

+2

這不是一個事後的想法。 C++是一種多範式語言。它允許你在你有一些狀態和非成員函數時使用類。對我而言,這是什麼使它成爲一種偉大的語言。你可以爲工作選擇合適的工具。 – 2013-04-03 22:53:05

+3

您需要下列其中一個:[The Definitive C++ Book Guide and List](http://stackoverflow.com/q/388242)。不幸的是,解釋C++編程的所有基礎知識對於Stack Overflow問題來說太廣泛了。在學習語言時,您需要提出更具體的問題。 – 2013-04-03 22:54:54

回答

-1

的Win32比的Visual C完全以不同++ CLR/CLI或c#....但是,經驗豐富..你會看到simulus。在win32中有 你有主要的消息循環,必須自己接收所有東西......甚至是強硬的面向對象......像c·或visual C++這樣的行爲規範的代碼......像按鈕一樣的控件可以有自己的消息循環而且你不必自己收集垃圾......考慮到它是正確的。

在Win32 C++,你需要處理你的數據非常WEL,將發生內存,否則孔/溢出。 你會像一個建築師一樣工作,記錄你的變量,並且不會拋棄任何背後的東西。這是主要區別!

+1

我從來沒有見過有自己的消息循環的按鈕控件。通常,消息循環是每個線程的。除了那個挑剔之外,C++還有很多比Win32編程更多的東西。 – 2013-04-03 23:00:55

+0

'虛擬無效WndProc(消息%m)覆蓋 \t {...}' 你可以在任何控制和間諜使用此代碼。 – NaturalDemon 2013-04-03 23:02:47

+0

(1)這是C++/CLI代碼,而不是C++代碼。這意味着它運行在.NET Framework上,因此幾乎與這裏提出的問題無關。 (2)這不是一個消息循環,而是一個窗口過程。消息循環將消息發送到窗口過程。 (3)這是本機C++和.NET語言之間的非唯一區別。兩者都有消息循環和窗口過程。 – 2013-04-03 23:04:51

3

您可以使用類約很多,還是你在C++中要少,但他們不是強制性的一切都像他們在C#(雖然沒有,入口點不能在它絕對真實C++類,但你可以自己決定其他大部分事情)。

至於如何應該寫C++:對觀點隨時間而變化。早在20世紀90年代初,大多數人就像現在使用Java或C#一樣編寫C++,基本上所有的代碼,類型等都彙總成某種類或其他類。但是,隨着時間的推移,這種情況已經不那麼常見了 - 大多數C++程序員現在都傾向於在合理時傾向於使用自由函數(即不是類的成員),並且僅在使用成員函數時纔會使用成員函數替代品顯然較差。

頁眉是那些理論上很簡單的一件事,但在實際中可能相當混亂。標題只是一個包含在其他文件中的文件。如果您認爲合適,您可以使用#include將基本上任何文件的內容包含到另一個文件中。

在實踐中,通常要放的功能,類型,常量,等等,到頭部的聲明,這樣你就可以將它們包括在多個源文件,因此,所有這些源文件得到匹配的聲明。

但是,使用模板時,通常不僅需要聲明,而且需要將整個定義放入一個頭中,以便在實例化該模板的任何地方都可以看到它。無論好壞,支持C++提供的模板單獨編譯正好在「最小」和「不一致」之間的邊緣。