如果你不確定在使用Qt編程時自己所掌握的C++知識是否夠用,這一節的內容會幫到你。這里給出了Qt自身以及在使用Qt進行編程時涉及到的C++知識,因此,通過閱讀本節,你會了解你是否缺少一些C++技能。
如果你想對這里提到的C++特性做進一步的了解,我們推薦你看Gregory Satir和Doug Brown撰寫的《C++:The Core Language》,該書由O’Reilly出版。這本書重點講解了C++語言最為重要的部分,並且涵蓋了本節提到的所有內容。
- 對象和類
當然的,Qt中使用到了類-Qt是一個類庫。你需要知道某個類的成員函數的用法。而且,你需要掌握怎樣寫你自己的類,以及怎樣繼承一個已經存在的類,從而產生一個新的類。不過,你無需成為擅長類的等級設計的高手。對於GUI 程序設計,在這里我們會提供足夠豐富的信息來幫助你構建自己的知識體系。
- 存取方法
Qt中大量的使用了存取方法,它們用來得到或者設置類的私有變量的值。保存方法通常以set...這樣的型式出現(例如,setText()),而獲取方法則不帶有任何前綴(甚至沒有get-,例如,text())。在Qt中,這是一個基本的東西(慣例,譯者注);沒有復雜的東西在里面。
- 多態和虛函數
Qt中使用虛函數來通知你的(程序中的)對象,某些低級的事件(就像鼠標點擊、重繪操作那樣的事件)發生了,所以你必須要適應這些函數(的用法)。不像其他的工具包或者類庫,Qt主要使用創新的信號/槽機制而不是虛函數來作為對象間通信的主要的方法。這個特性對於Qt而言至關重要,所以在本書的后面章節中將會介紹它。
- 繼承
毫無疑問,Qt中用到了繼承,但是其中最重要的部分是建立在單繼承之上的。多繼承很少用到-實際上,它的使用少到你很可能從來沒有遇到過它。如果你對那個“虛擬繼承”的含義不理解的話,放心吧:Qt中根本就沒有用到它。
- 運算符重載
Qt重載了一些運算符,但通常這些運算符只是(在背后)工作而已。舉例來說,你可以把一個QString對象賦給某個函數,期望得到一個const char*,這是由於一個強制轉換運算符的介入以把你的QString對象轉換為一個字符指針。
- 模板類
你不能使用一個不理解模板或者沒有完全實現模板的編譯器來編譯Qt。如果你不想使用集合類,在你自己的代碼中使用模板就不是必需的。但是模板是非常有用的,所以你還是要盡量的熟悉基本的模板的使用。並且,這個學習起來並不復雜。
- bool數據類型
Qt中經常用到bool數據(對於C++而言,是較新的類型)類型。不幸的是,一些老舊的編譯器不支持bool數據類型,並且也不能識別true和false這兩個關鍵字。這時候,你可以轉而使用Qt提供的TRUE和FALSE宏來替代。在本書中,我們使用true和false,但如果你手頭使用的是那些老舊的編譯器,你需要總是使用TRUE和FALSE代替它們。
- 其他特性
Qt沒有使用那些尚未被所有編譯器所支持的以及新的C++特性,如名字空間、運行時類型識別(RTTI),新的類型綁定等等。Qt也不使用標准模板庫(STL),但你可以在自己的Qt程序中使用它。
轉自:http://blog.csdn.net/qter_wd007/article/details/6737470