自己編程總結點小經驗

 1.如果一個類佔用的內存比較大,那麼在其他類中,如果它做爲數據成員,那麼最好把它寫成指針的形式,這樣,使用它的類佔用的空間就小了.但是寫成指針形式經常容易出錯誤,需要熟練了纔可以.

 

2.如果自己聲明瞭構造函數,那麼編譯器是不會再爲這個類創建default構造函數的(default構造函數:也就是class e1這種的)。

 

3.如果QVector容器中需要改變其中的元素,就不能用.at函數,直接用[]符,如果用.at函數,會出現類似如下的錯誤:

error C2662: 'QVector<T>::append' : cannot convert 'this' pointer from 'const QVector<T>' to 'QVector<T> &'

error C3892: 'gridID' : you cannot assign to a variable that is const

 

4.在使用QVector的時候,如果沒有指定它的長度就想調用.at函數或者[]操作符,會出現越界錯誤,需要首先調用resize()函數進行指定長度.如果不指定長度的可以調用append函數在容器末尾進行添加.

 

5.靜態成員的提出是爲了解決數據共享的問題。實現共享有許多方法,如:設置全局性的變量或對象是一種方法。但是,全局變量或對象是有侷限性的。在類中,靜態成員可以實現多個對象之間的數據共享,並且使用靜態數據成員還不會破壞隱藏的原則,即保證了安全性。因此,靜態成員是類的所有對象中共享的成員,而不是某個對象的成員。
  使用靜態數據成員可以節省內存,因爲它是所有對象所公有的,因此,對多個對象來說,靜態數據成員只存儲一處,供所有對象共用。靜態數據成員的值對每個對象都是一樣,但它的值是可以更新的。只要對靜態數據成員的值更新一次,保證所有對象存取更新後的相同的值,這樣可以提高時間效率。

 

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