Qt中使用的C++知識和技能-你必須要瞭解的QT

Qt中使用的C++知識和技能-你必須要瞭解的

 

        如果你不確定在使用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程序中使用它。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章