【发布时间】:2019-04-11 13:20:21
【问题描述】:
我需要一个可以进入私有结构的函数
#include <iostream>
using namespace std;
struct abc {
private:
int a;
}b;
int main(){
//i want to use the variable a
system("pause");
}
【问题讨论】:
-
如果你想访问它,它的私密性有什么意义?!
-
我同意,这有什么意义。但是,如果您想访问
a变量,那么唯一的方法是使用abc的方法或使用声明为abc的朋友的函数。如果你解释为什么你想这样做,你会得到一个更好的答案。 -
struct a { int a; }然后((a*)&b)->a = 42应该这样做。 -
@DeiDei 这将是未定义的行为 - 将对象转换为它们不是的东西可能看起来很有效,但即使它们具有相同的成员,编译器也可能对它们进行了不同的优化。最好有
struct a{int a;}; struct abc: private a{};(也 - 答案在下面,以便人们可以否决他们) -
你可以访问
abc定义吗?