当前位置:首页 » 密码管理 » 私有成员变量访问

私有成员变量访问

发布时间: 2022-04-22 10:34:24

Ⅰ c++ 类的私有成员变量可以被访问

C++类体声明的私有成员仅供类体内成员访问,其它地方不可访问。

Ⅱ 类对象可以访问自己的私有成员

在类自己的成员函数及类的友元类和类的友元函数里是允许访问私有成员的,如果是在非类的成员函数或友元类或友元函数中是不可能的,你可以试试

Ⅲ 关于子类访问父类私有成员变量问题,大神来看看

楼上说错了,就只有一个B实例,没有A实例。

继承的概念,就是把父类的所有东西都继承下来了,包括A类的x成员变量和所有方法,只是在B类里无法直接访问x变量而已。

所以创建的B实例的内存里,也是有x,并为它分配了内存空间的

Ⅳ 在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;
}

Ⅳ C++中派生类如何实现对基类私有成员的访问

派生类不能对基类私有成员进行访问。
要在派生类中对基类成员进行访问,可以:
1,在派生类中对基类成员的public属性进行访问,以间接访问基类的私有成员;
2,在基类中将私有成员定义为protected访问属性,以在派生类中直接对其进行访问;

Ⅵ 如何访问类中类的私有数据成员

类中的私有成员只能在类的内部访问,在类的外部是不能访问的,一般访问私有成员的方法是在类中定义一个共有的方法来访问这个私有变量,然后在类的外部调用这个方法,以达到访问私有成员变量的目的

Ⅶ 请问子类中继承过来的公有函数,可以访问基类的私有成员变量吗

不可以。
可以先看下C++的继承机制,在计算子类对象所占内存大小的时候,父类的私有成员变量大小也计算在内。所以,子类继承父类时,内部包含父类的私有成员,只不过是已经固化且不可见的。继承自父类的私有成员变量,子类不可见,不可另加操作,实例化后与父类对象私有成员所占内存区地址不同。
当父类存在共有或保护函数对其私有成员变量操作时,子类也可使用继承自父类的这些函数对其内部隐藏的同样继承自父类的私有成员变量进行操作。但子类无法再写一个函数对这部分成员变量进行访问或修改。

Ⅷ 如何访问类中的private成员变量

总所周知,类中的private属性的成员变量在类外是无法访问的,今天我们探讨的就是如何在类外访问private属性的成员变量。

我们先来看一个简单的例子:

class STU
{
public:
STU()
{
x = 5;
y = 10;
}
private:
int x;
int y;
};

int main()
{
STU t;
int*p = (int*)&t + 1;
return 0;
}

通过上面的代码我们可以知道,方法是把类对象的地址强制转化为int*类型,因为类对象里存储的只是成员变量,所以通过对指针的操作可以访问到private类型的成员变量。

接下来还有一个例子:

class STU
{
public:
STU()
{
c = 'f';
y = 10;
}
private:
char c;
int y;
};

int main()
{
STU t;
int*p = (int*)((char*)&t + 4);
cout << *p << endl;
return 0;
}

这段代码中最重要的就是int*p = (int*)((char*)&t + 4);
因为第一个数据是char类型的,所以要把对象的地址转化为char*型,对象中存在两种类型的数据,需要考虑内存对齐,所以当要访问下一个int型变量的时候,指针需要加4,而不是加1。最后要取到int型的变量,还是要把地址强转为int *。

Ⅸ 怎么访问别的类私有成员变量

私有成员变量在别的类中是无法访问的,要不还叫什么私有。
不过子类可以通过设置器和访问器来访问父类的私有成员变量。
public class A
{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void show()
{
System.out.println(this.getName()+","+this.getAge());
}

}

public class B extends A
{
public static void main(String[] args)
{
B b=new B();
b.setName("李三");
b.setAge(19);
b.show();
}
}

热点内容
缓存区数据读写原理 发布:2025-05-15 03:39:57 浏览:585
编译器生成的是二进制文件吗 发布:2025-05-15 03:38:42 浏览:954
运营为什么区分ios和安卓 发布:2025-05-15 03:30:02 浏览:630
主播网站源码 发布:2025-05-15 02:50:56 浏览:168
中文编程语言有哪些 发布:2025-05-15 02:48:59 浏览:536
配置中心应急流程有哪些 发布:2025-05-15 02:37:31 浏览:670
php宏定义 发布:2025-05-15 02:32:54 浏览:271
咸鱼支付密码哪里改 发布:2025-05-15 02:32:53 浏览:521
存储机箱 发布:2025-05-15 02:31:31 浏览:837
编程很累吗 发布:2025-05-15 02:29:25 浏览:553