今天面试碰到的一个以前没有想过的问题(顺便给一点分出去)
cber 2003-02-27 06:23:54 该题写的是考查应聘者对于C++中的存取权限的理解,但经我稍微的分析,觉得不完全如是,现把它公开出来,希望各位能够畅所欲言,发表自己的看法
有类A,它被定义在a.h中,A有private成员i,如下:
class A {
private:
int i;
// ...
};
A的实现在a.cpp中(具体细节略)。在另外一个main.cpp中,我们使用了A,当然,我们知道直接访问A::i是不可能的。现在问题开始了,我们先把a.cpp编译成a.obj,然后修改a.h,把i改为public,然后我们再编译main.cpp,得到main.obj,然后把main.obj和a.obj放到一起去链接,问:这样做是否可以成功
我觉得这个问题很是有意思,因为根据以前接受过的正统熏陶,a.h被修改后,项目中的a.cpp肯定是要重新编译的,但这个题目没有这样做。所以让我很是费解了一番,自己胡乱写了一点上去,天知道是否正确与否:(
正好自己也很久没有放一点分出去了,所以就顺便把该问题作为放分的理由^_^