轉帖|其它|編輯:郝浩|2010-06-08 09:48:24.000|閱讀 581 次
概述:C++ Prime學習筆記之類成員函數,類對信息的隱藏是通過這個關鍵字實現的,也就是權限機制。對于每一個類的對象都會有一個維護該對象的隱藏指針指向該對象,我們叫這個指針叫做this指針,由于這個this指針是指向這個對象的,所以this指針能訪問對象的數據成員,而對象的數據成員是類的數據成員的一份拷貝。而類的成員函數缺只有一份拷貝而已。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
C++ Prime學習筆記之類成員函數,類對信息的隱藏是通過這個關鍵字實現的,也就是權限機制。對于每一個類的對象都會有一個維護該對象的隱藏指針指向該對象,我們叫這個指針叫做this指針,由于這個this指針是指向這個對象的,所以this指針能訪問對象的數據成員,而對象的數據成員是類的數據成員的一份拷貝。而類的成員函數缺只有一份拷貝而已。
一個想象的例子就是。張三,李四都是人類的一個對象,手,腳都是他們的各自手腳,而干活這個方法則是人類擁有的方法一份拷貝,而這個拷貝就只有一份。我們是用手腳干活的,我們都會干活,但是由于手腳都是各自的,所以干活做的事情卻不同了,張三可能干活比較快點,因為手腳靈活,而李四,手腳不夠靈活,則干活干得比較慢了點。但是如何區分這個干活的行為,是哪個干的呢?我們叫通過名字就能知道了,張三的手和腳,李四的手和腳。在C++有個指針叫做this指針,用來指向我們名字的,所以我們能區分不同的手腳。這樣說來可能更加糊涂了。下面看個例子
/*
*
* 信息隱藏,通常是通過類的權限控制實現的。對于私有的我們叫做封裝,對于公有部分我們叫做接口
* 每個類的對象都有自己類數據成員的一份拷貝,但是類的成員函數就只有一份拷貝。在調用get()函數的時候
* func和func1調用的是同一個函數,只不過函數里面age的數據成員是各自age,是通過this指針來實現的。
*
*/
#include <iostream>
using namespace std;
class Mfunc
{
public:
//方法只有一個拷貝
void set(int a){age = a;}
int get(){return age;}
private:
//成員數據,不同對象有不同的拷貝
int age;
};
int main()
{
Mfunc func;
Mfunc func1;
//這個30是給func數據成員賦值的
func.set(30);
//這個40是給func1數據成員賦值的
func1.set(40);
//他們調用的都是同一個get函數拷貝
cout<<func.get()<<endl;
cout<<func1.get()<<endl;
return 0;
}
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:網絡轉載