c訪問私有變數
『壹』 C++靜態成員函數,怎麼就訪問私有變數了...
C++會區分兩種類型的成員函數:靜態成員函數和非靜態成員函數。這碧敗叢兩者之間的一個重大區別是,靜態成員函數不接受隱含的this自變數。所以,它就無法訪問自己類的非靜態成員。
左例中分別聲明了成員函數void add(),成員變數int a,和靜態成員函數 static void staticfunc(),靜態成員變數 static int sa.
在staticfunc()的定義中,由於沒有this指針,所悔櫻以無法訪問普通成員變數和成員函數.
方法:聲明類的所有數據成員都是靜態的。運用這種方式的話,靜態的成員函數就能夠直接地訪問它們,例如:
此時,即可在staticfunc()中正常訪問變數a了,如枯閉果還需訪問add()函數,則將add()也冠以static即可.
該方法缺點是,很多情況下,你並不願意將所有的變數都改成靜態成員.或者有些變數不能是靜態的.此時該方法失效.
『貳』 在C++中如何訪問一個類裡面的私有變數
在面向對象的編程里,既然變數設為私有的,就是為了信息隱藏,所以如果要訪問私有變數,最好是使用Get函數。但在c++里還可使用友元類或友元函數進行訪問,這種方法不太推薦
『叄』 c++中私有變數的引用
誰也沒說前者不櫻螞適用「.」引用
private是對於如頌仿類的外部是不可見的,但是對於類的內部是可以訪問的。類的成員函數可以訪問私有變數。比如第2個中的 Line(Line &L);它就是類的成員函數可以訪問私有成員的。如果你在第一個類裡面寫一個函數,也是可以訪問第一個類的私有變數的。比如get函數,它就能訪問x,y。get函數和 Line(Line &L);地位是相渣纖同的。
『肆』 c++怎麼用引用&來訪問類中的私有變數
#include<iostream.h>
class A
{
public:
A(int i)
{a=i;}
int fun1()
{return a+a;}
int fun2()
{return a*a;}
int& fun3(){return a;}//這是我加的
private:
int a;
};
void main()
{
A x(5);
cout<<x.fun1()<<'\n';
cout<<x.fun2()<<'\n';
x.fun3()*=3;//調用fun3就等於引用私有成員a
cout<<x.fun1()<<'\n';
cout<<x.fun2()<<'\n';
}
『伍』 c++類中靜態成員函數怎麼訪問類私有變數
如果私有變數是靜態的,可以直接訪問,或通過類名::變數名訪問;
如果私有變數是實例成員旁棚,要先創建一個類的對象,滑伍再通過對象名.變數名訪問,或先new一個對運讓則象,將new的返回值賦給一個指針,通過指針名->變數名訪問或通過(*指針名).變數名訪問。