C 使用靜態類成員時出現的乙個問題

2021-09-24 16:13:10 字數 822 閱讀 8854

開發環境 qt creator 4.8.2

編譯器 mingw 32-bit

在類中定義了乙個static data member

class triangular;

void triangular::gen_elems_to_value(int value)

while (_elems[ix - 1] < value && ix < _max_elems)

if(ix == _max_elems)

}/** 給定某值,依據該值是否在triangular數列內而返回true或false

*/bool triangular::is_elem(int value)

vector::iterator fount_it;

vector::iterator end_it = _elems.end();

fount_it = find(_elems.begin(),end_it,value);

return fount_it != end_it;

}

當編譯程式時,報錯

error: undefined reference to `triangular::_elems'
提示triangular類中_elems沒有定義。

解決辦法:

對class而言,static data member只有唯一的乙份實體,因此我們必須在程式**檔案中提供其清楚的定義。

//以下放在程式**檔案中

vectortriangular::_elems;

記錄Ubuntu更換國內源時出現的乙個問題

最近,在學習fabric相關的內容,所以嘗試,然後總是會出現各種各樣的問題,然後在一次重新安裝虛擬機器後,竟然更換源時都報錯了。然後在網上查了查相關的內容,有的說是在軟體與更新中更換位址之類的,並沒有解決問題,不過提供了乙個思路,再仔細回想一下,貌似是在安裝虛擬機器的最後幾步中有一項是選擇你所在的城...

C 乙個類呼叫另乙個類的成員變數 成員函式

有時候,兩個類之間並沒有繼承的關係,但是其中乙個類需要引用另乙個類中的成員變數或者成員函式。怎樣辦到呢?假設已經新建了兩個類a b。class a class b 現在需要在類a的成員函式中呼叫類b的成員變數b nadd b x,使得a nadd與b nadd相加,那麼只需要在類a的.cpp檔案中包...

C 中乙個類成員函式呼叫另乙個類成員的方法

在繼承之外,在c 中乙個類成員函式呼叫另乙個類成員的方法主要有 類的組合,友元類,類的前向宣告,單例模式等,下面主要講講這4種方法的實現 組合通俗來講就是類b有類a的屬性,如宣告乙個person類,再宣告乙個teacher類,person類物件有年齡和姓名成員,而teacher類物件成員也有年齡和姓...