降低檔案之間的編譯依賴性

2021-06-12 17:49:01 字數 682 閱讀 7716

當乙個類裡面有別的檔案中定義的型別的成員物件的時候,這兩個檔案一般來說,就有了依賴性。例如:

// widgeta.h

class widgeta

;class widgetb

;使用widgetb的時候我們需要包含widgeta.h標頭檔案,否則編譯器會告訴你找不到定義,所以我們一般會在widgetb.h的頭部新增:#include "widgeta.h",這樣,widgetb就開始依賴widgeta了,如果a發生改變,自然b也就發生改變,包含b標頭檔案的所有原始檔都會需要重新編譯,而那些原始檔可能根本就沒有用到任何和a相關的東西。

這個問題怎麼解決呢?

我們可以使用前置宣告,宣告而不是定義,這樣編譯器可以看到這個類的名稱,而看不到定義,這就有乙個問題,你不可能宣告出看不到定義的物件,所以這樣我們的members就不能再是物件了,可以是指標或者引用。就像下面這個樣子:

class widgeta;

class widgetb

;這樣我們可以在b的原始檔中包含a的頭,而那些使用b頭的地方已經不需要再包含了,也就擺脫了a對他們的「控制」。今天看到primer上說類中函式作為引數或者返回的型別也可以只前置宣告,大驚,一直不知道,試了一下果然可以,於是開始動手改我們元件**,咦~cli的列舉不讓前置宣告~! 呵~  改了半天別的,基本沒有效果,我們一直都不看依賴性的,一編就是一起編,多好,還可以休息下,呵呵~多好。

spring bean定義的依賴性檢查

在spring的工程裡,bean的定義是不可避免的。雖然有各種可以減少很多bean的配置,特別是action眾多的時候,我們通常可以通過引入autowire 來避免action類bean的定義。但還會有眾多的bean需要定義,他們之間的依賴關係通常也是複雜 多變的。在這過程中我們通常會發生一些弱智的...

開環增益的頻率依賴性

1 運放的差模開環增益不是無限的,而是有限的,它隨頻率的增加而減小,如下圖 2 注意幾個定義 1 頻率補償目的就是減小時鐘和相位差,使輸入輸出頻率同步.頻率補償的根本思想就是在基本電路或反饋網路中新增一些元件來改變反饋放大電路的開環頻率特性。不同的電路或者說不同的元器件對不同頻率的放大倍數是不相同的...

改變中學生學習語文的依賴性

一.從思想上改變學生對語文學習的偏見 在語文的學習中,好多學生都有一種根深蒂固的偏見,認為語文平時不需要多花精力,臨考時看看課本,背一背就行了,考試再怎麼考也考不差。這樣,考試就成了知識搬家,將書本或筆記本上的內容原封不動地搬到了試卷上,語文考試就變成了考記憶力。因此,作為語文老師首先要從思想上糾正...