㈠ 如何訪問類中類的私有數據成員
類中的私有成員只能在類的內部訪問,在類的外部是不能訪問的,一般訪問私有成員的方法是在類中定義一個共有的方法來訪問這個私有變數,然後在類的外部調用這個方法,以達到訪問私有成員變數的目的
㈡ 讀取private成員變數
1、在類中聲明private的變數
2、給出get,set方法
3、在其他類中實例化1中的類,然後通過類的對象來點出成員變數,例如:
publicclassUser{
privateStringname;
publicvoidsetName(Stringname)
{
this.name=name;
}
publicStringgetName()
{
returnname;
}
}
publicclassTest{
publicstaticvoidmain(String[]args)
{
Useruser=newUser();
user.setName("張三");
System.out.println(user.getName());
}
}
㈢ C++類中靜態對象成員的訪問!
類其實是個模型。
而對象就是找個這個模型製作的實體。
比如,類是造車的圖紙,對象就是找個圖紙造出的汽車。
類的成員是分級別的:protect,public,private。
在類內部定義的函數可以訪問任何一個變數,或者調用任何的類內部的函數,但是,如果被定義成private的話,對象是不能調用的,也就是對象只能調用定義為public的數據,如果你確實需要調用某個private的變數,你可以定義一個public的函數來返回這個變數,比如:
class
d
{
private:
int
a;
public:
int
getint(){return
a;}
......
}
這里你的對象不能調用a的,
也就是不能
int
b;
d
d;//假設已經寫好了構造函數
b=d.a;//這是錯誤的,
但是你可以
b=d.getint();
這樣就可以把a的值給b了。
所有的public的函數都可以通過
<對象>.<函數名>
的方式來調用
㈣ 在C++中如何訪問一個類裡面的私有變數
在面向對象的編程里,既然變數設為私有的,就是為了信息隱藏,所以如果要訪問私有變數,最好是使用Get函數。但在c++里還可使用友元類或友元函數進行訪問,這種方法不太推薦
㈤ c++ 如何訪問protected 中的變數
/*在面對對象的語言中,訪問一個私有類的變數時,為了保護數據,會設置pulbic的get,set方法來獲取或者改變變數的設置。*/
classa{
private:
intX=0;
public:
intgetX(){
returnX;
}
voidsetX(intX){
this.X=X;
}
}
/*在需要用到X變數時就用getX函數來返回X的值,在需要更改X的值時就用setX值。*/
㈥ c++類中靜態成員函數怎麼訪問類私有變數
如果私有變數是靜態的,可以直接訪問,或通過類名::變數名訪問;
如果私有變數是實例成員,要先創建一個類的對象,再通過對象名.變數名訪問,或先new一個對象,將new的返回值賦給一個指針,通過指針名->變數名訪問或通過(*指針名).變數名訪問。
㈦ 如果想要訪問父類中的一個private成員變數有什麼方法
類的封裝性,一般在定義成員變數的時候定義為private,同時還會定義幾個公有的方法實現對該私有成員變數進行操作的函數,這樣在類就可以通過 對象名.公有方法 的方式對私有成員進行訪問
㈧ c++中私有變數的引用
誰也沒說前者不適用「.」引用
private是對於類的外部是不可見的,但是對於類的內部是可以訪問的。類的成員函數可以訪問私有變數。比如第2個中的 Line(Line &L);它就是類的成員函數可以訪問私有成員的。如果你在第一個類裡面寫一個函數,也是可以訪問第一個類的私有變數的。比如get函數,它就能訪問x,y。get函數和 Line(Line &L);地位是相同的。
㈨ 在C++中訪問類的私有成員變數的方法有哪些
(1)通過公共函數為私有成員賦值
#include<iostream>
usingnamespacestd;
classTest
{
private:
intx,y;
public:
voidsetX(inta)
{
x=a;
}
voidsetY(intb)
{
y=b;
}
voidprint(void)
{
cout<<"x="<<x<<' '<<"y="<<y<<endl;
}
};
intmain()
{
Testp1;
p1.setX(1);
p1.setY(9);
p1.print();
return0;
}
(2)利用指針訪問私有數據成員
#include<iostream>
usingnamespacestd;
classTest
{
private:
intx,y;
public:
voidsetX(inta)
{
x=a;
}
voidsetY(intb)
{
y=b;
}
voidgetXY(int*px,int*py)
{
*px=x;//提取x,y值
*py=y;
}
};
intmain()
{
Testp1;
p1.setX(1);
p1.setY(9);
inta,b;
p1.getXY(&a,&b);//將a=x,b=y
cout<<a<<' '<<b<<endl;
return0;
}
(3)利用函數訪問私有數據成員
#include<iostream>
usingnamespacestd;
classTest
{
private:
intx,y;
public:
voidsetX(inta)
{
x=a;
}
voidsetY(intb)
{
y=b;
}
intgetX(void)
{
returnx;//返回x值
}
intgetY(void)
{
returny;//返回y值
}
};
intmain()
{
Testp1;
p1.setX(1);
p1.setY(9);
inta,b;
a=p1.getX();
b=p1.getY();
cout<<a<<' '<<b<<endl;
return0;
}
(4)利用引用訪問私有數據成員
#include<iostream>
usingnamespacestd;
classTest
{
private:
intx,y;
public:
voidsetX(inta)
{
x=a;
}
voidsetY(intb)
{
y=b;
}
voidgetXY(int&px,int&py)//引用
{
px=x;//提取x,y值
py=y;
}
};
intmain()
{
Testp1,p2;
p1.setX(1);
p1.setY(9);
inta,b;
p1.getXY(a,b);//將a=x,b=y
cout<<a<<' '<<b<<endl;
return0;
}