一道面试题C++怎么给类的私有成员变量赋值

来源:百度知道 编辑:UC知道 时间:2024/06/21 19:25:46
class A{
private:int i;
public:int j;
}
void main(){
A a;
a.j=1;
}
怎么给i赋值
不能修改类

你这个类很简单,你直接把他看做是个结构体。
思路:
class A{
private:int i;
public:int j;
}
void main(){
A a;
a.j=1;
//用指针实现:
int *pI=(int *) (&a);
*pI=1234;
}

题目没有说字节对齐方式?我没测试,你自己整一下。

i是不能直接赋值的,只有通过对象赋值,可以这样:
class A{
private:int i;
public:int j;
int Reti()
{return i;}
}
void main(){
A a;
int b;
a.j=1;
b=a.Reti();
}