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的返回值赋给一个指针,通过指针名->变量名访问或通过(*指针名).变量名访问。