第7 9章 QObject和庫

2021-04-19 07:10:09 字數 1656 閱讀 1537

第7章 庫

庫是按照可重用的方式組織的**模組組。庫中通常包含已經設計,測試和編譯過的**,您可以輕易地將庫中的**鏈結到應用程式中。庫是乙個包含幾個已編譯檔案的檔案,為了便於編譯器定位符號和他們的定義,所有庫檔案都建立了索引。

2。編譯時依賴與鏈結時依賴有何不同?

如果為了完成編譯必須將progelement1.h包含在progelement1.cpp中,則這種依賴關係是編譯時依賴。

如果目標檔案progelement2.o包含了progelement1.o中定義的符號,那麼這種依賴關係稱為鏈結時依賴。(前置宣告)。

第9章 qobject

1。如果objecta是objectb的父物件,其含義是什麼?

2。當乙個qobject重新選擇父物件時,會發生什麼事情?

給某個物件設定父物件將會隱含地把此新增到它父物件的子物件列表中

obja->setparent(objb);//把obja指標新增到objb

obja->setparent(objc);//把obja指標新增到objc

那麼obja的指標就會從objb的子物件列表中移出,然後新增到objc的子物件列表中,我們把這種行為叫做重新認父。

父子關係是為了描述物件執行時的約束和管理關係;基類派生類關係是編譯時判定的一種靜態關係。

3。為什麼qobject的複製建構函式不是公有的?

每乙個qobject都至多有乙個父物件。如果把qobject看成是乙個乙個的人,則每個qobject的身份都不同的含義就容易理解了,同樣每個qobject都

可以有子物件這一概念也就非常清楚了。

4。什麼是組合模式?

組合模式的目的是便於使用簡單(元件)部分來建立複雜(組合)物件。其主旨是使用類似於樹的結構來表達部分-整體的層次關係。

5。在什麼情況下qobject既可以是組合物件又可以是元件物件?

組合物件是包含子物件的類。元件物件是可以擁有父物件的類。

6。如何訪問乙個qobject的子物件?

findchildren()用來在子物件列表中查詢子物件。

qlistcustlist = parent.findchildren();

foreach (customer*current, custlist)

7。什麼是事件迴圈?它是如何初始化的?

事件迴圈是乙個程式,它能夠將事件劃分優先順序,並排隊,分派到某個物件。

8。什麼是訊號?如何呼叫乙個訊號?

訊號是類介面的一部分,它類似與函式卻無法呼叫,必須由此類的乙個物件發射訊號

9。什麼是槽?如何呼叫乙個槽?

10。訊號與槽是如何進行連線的?

11。資訊是如何從乙個物件傳遞給另外乙個物件的?

任何擁有訊號的qobject都可發射出乙個訊號,這時就會引起對連線的槽的間接呼叫。

這種呼叫是間接的,引數列表是從乙個物件向另外乙個物件傳遞資訊的方式。

12。乙個類繼承qobject多次可能會引起問題,在什麼情況下會意外地發生這種情況?

如果在實際過程中繼承了qobject多次,或者此類不是繼承列表中的第乙個基類,那麼可能會從moc生成的**中發現非常奇怪的錯誤。

13。值型別與物件型別之間有何區別?試給出幾個例子。

值型別的事例非常「簡單」:占用連續的記憶體空間,可以快速地進行複製和比較。

物件型別的例項通常要複雜得多,他們要維護某類身份。物件型別通常很少進行複製。

web第7 9章總結

css包含一些簡單語句,稱為規則 rule 每個規則為選擇的一些html提供樣式。例 h1,h2,h1,h2叫做選擇器,樣式應用到h1和h2元素。要在html中包含乙個樣式,最容易的辦法就是使用style標記,對於html以及相當複雜的 可能要鏈結到乙個外部樣式表。樣式表中去掉style。再在htm...

C primer習題筆記第7 9章

1 下面的程式雖然是合法的,但可用性還不夠好,指出並改正該程式的侷限。bool test string s 解答 其侷限在於 此處使用引用形參的唯一目的是避免複製實參,但沒有將形參定義為const引用,從而導致不能使用字串字面值呼叫該函式 因為非const引用形參只能與完全同型別的非const物件關...

第7 9章 軟體工程課後習題答案

1.測試用例設計時,主要工作是 設計測試場景的輸入資料 設計測試場景的輸入與輸出資料 設計測試場景的輸出資料 以上都不是 參 設計測試場景的輸入與輸出資料 2.測試用例設計時,主要工作是 需求分析 軟體設計 軟體構建 軟體測試 參 軟體設計 3.軟體體系結構定義為 參 1.軟體體系結構定義為 使用者...