我有一个 class A
,如下所述:-
class A{
int iData;
};
我既不想创建成员函数,也不想继承上面的class A
,也不想改变iData
的说明符。
我的疑惑:-
- 如何访问一个对象的
iData
,比如obj1
,它是class A
的一个实例? - 如何改变或操作对象
obj1
的iData
?
注意:不要使用friend
。
最佳答案
这是一种方法,但不推荐
class Weak {
private:
string name;
public:
void setName(const string& name) {
this->name = name;
}
string getName()const {
return this->name;
}
};
struct Hacker {
string name;
};
int main(int argc, char** argv) {
Weak w;
w.setName("Jon");
cout << w.getName() << endl;
Hacker *hackit = reinterpret_cast<Hacker *>(&w);
hackit->name = "Jack";
cout << w.getName() << endl;
}
关于c++ - 如何在不创建 "friend"的情况下访问类外的私有(private)数据成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6717163/