程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++沉思錄讀書筆記(4章)-限定用戶只能讀而不能寫類數據成員的方法

C++沉思錄讀書筆記(4章)-限定用戶只能讀而不能寫類數據成員的方法

編輯:C++入門知識

 

限定用戶只能讀而不能寫類數據成員的方法

方法1:可以通過使用常引用,如下所示

class Vector

{

public:

const int & length;//使用構造函數將length綁定到true_length上

//...

private:

int true_length;

};

方法2:通常還是使用如下方式

class Vector

{

public:

int length() const;

//...

private:

int true_length;

};

 

如果一個類需要顯式的調用構造函數,也就是說它沒有一個默認構造函數,則試圖生成該類對象的數組是非法的

 

構造函數的用途是用一種明確定義的狀態來設置對象

 

假設D繼承自B,只要存在對指向D類型對象的B*指針執行delete表達式,就需要對B加上一個虛析構函數,無論B是否有動態分配內存的數據成員

 

如果不想用戶能夠復制類的成員,就聲明復制構造函數為私有的

 

類X的賦值操作符應該返回X&,注意對象的自我復制問題,賦值操作符的一般形式如下:

X& X::operator=(const X& x)

{

if(this != &x)

{...}

return *this;

}

 

一定要記得在復制構造函數和賦值操作符的參數類型中加上const,由於綁定一個非const引用到一個臨時的對象是非法的,所以使用X::X(X&)作為復制構造函數不會允許復制任何特殊表達式的結果,X& X::operator=(const X&)也是如此

 

只有當函數想改變參數時,它才應該有不用const聲明的引用參數

 

 

 

 

 

作者 yucan1001

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved