c 物件成員的引用

2021-08-20 08:57:22 字數 1864 閱讀 7716

在程式中經常需要訪問類物件中的成員。訪問類物件中的成員可以有3種方法:

例如在程式中可以寫出以下語句:

stud1.num=1001;  //

假設num已定義為公用的整型資料成員

表示將整數1001賦給物件stud1中的資料成員num。其中「.」是成員運算子,用來對成員進行限定,指明所訪問的是哪乙個物件中的成員。注意不能只寫成員名而忽略物件名。

訪問物件中成員的一般形式為:

物件名.成員名

不僅可以在類外引用物件的公用資料成員,而且還可以呼叫物件的公用成員函式,但同樣必須指出物件名,如:

stud1.display( );  //

正確,呼叫物件stud1的公用成員函式

display( ); //

錯誤,沒有指明是哪乙個物件的display函式

由於沒有指明物件名,編譯時把display作為普通函式處理。應該注意所訪問的成員是公用的(public )還是私有的(private ),只能訪問public成員,而不能訪問private成員。如果已定義num為私有資料成員,下面的語句是錯誤的:

stud1.num=10101;  //

num是私有資料成員,不能被外界引用

在類外只能呼叫公用的成員函式。在乙個類中應當至少有乙個公用的成員函式,作為對外的介面,否則就無法對物件進行任何操作。

前面已經介紹了指向結構體變數的指標(詳情請猛擊:指向結構體變數的指標),可以通過指標引用結構體中的成員。用指標訪問物件中的成員的方法與此類似。如果有以下程式段:

class

time

;time t, *p; //

定義物件t和指標變數p

p=&t; //

使p指向物件t

cout

輸出p指向的物件中的成員hour

在p指向t的前提下,p->hour,(*p).hour和t.hour三者等價。

還有以下**參考

#include #include 

using

namespace

std;

class

_test_class

};int main(int argc,const

char*argv)

如果為乙個物件定義了乙個引用變數,它們是共佔同一段儲存單元的,實際上它們是同乙個物件,只是用不同的名字表示而已。因此完全可以通過引用變數來訪問物件中的成員。

如果已宣告了time類,並有以下定義語句:

time t1;        //

定義物件t1

time &t2=t1; //

定義time類引用變數t2,並使之初始化為t1

cout/

輸出物件t1中的成員hour

由於t2與t1共占同一段儲存單元(即t2是t1的別名),因此t2.hour就是t1.hour。

#include #include 

using

namespace

std;

class

_test_class

};int main(int argc,const

char*argv)

4.類和物件的簡單使用

#include #include 

using

namespace

std;

class

_test_class

;void display2(_test_class &test)

int main(int argc,const

char*argv)

c 物件成員的引用問題

1.通過物件名成員運算子訪問 3.通過物件的引用變數訪問物件中的成員 省略部分 和以上 相同 int main c 中的getter和setter 類的封裝 運用指標將私有類中的私有成員提取到類外 include include using namespace std class test void...

C 引用物件成員的三種方式

在程式中經常需要訪問物件中的成員。訪問物件中的成員可以有3種方法 1.通過物件名和成員運算子訪問物件中的成員 2.通過指向物件的指標訪問物件中的成員 3.通過物件的引用變數訪問物件中的成員。通過物件名和成員運算子訪問物件中的成員 例如在程式中可以寫出以下語句 stud1.num 1001 假設num...

C 引用物件成員的三種方式

在程式中經常需要訪問物件中的成員。訪問物件中的成員可以有3種方法 1.通過物件名和成員運算子訪問物件中的成員 2.通過指向物件的指標訪問物件中的成員 3.通過物件的引用變數訪問物件中的成員。通過物件名和成員運算子訪問物件中的成員 例如在程式中可以寫出以下語句 stud1.num 1001 假設num...