今天面试碰到的一个以前没有想过的问题(顺便给一点分出去)

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肯定是要重新编译的,但这个题目没有这样做。所以让我很是费解了一番,自己胡乱写了一点上去,天知道是否正确与否:(

正好自己也很久没有放一点分出去了,所以就顺便把该问题作为放分的理由^_^
...全文
502 66 打赏 收藏 转发到动态 举报
写回复
用AI写文章
66 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzhnet 2003-03-01
  • 打赏
  • 举报
回复
up
yatuor 2003-02-28
  • 打赏
  • 举报
回复
studying...
yangq119 2003-02-28
  • 打赏
  • 举报
回复
我觉得不可以的拉,编译器应该分配了2个变量(i),分配方式不一样??
地址也不一样.....
skfox 2003-02-28
  • 打赏
  • 举报
回复
sang
sea_lover 2003-02-28
  • 打赏
  • 举报
回复
可以
JoshuaLi 2003-02-28
  • 打赏
  • 举报
回复
天哪!这些知识都是怎么学到的呀。恳请大家指教晚辈。
bailingke 2003-02-28
  • 打赏
  • 举报
回复
有哪位高手对C++的编译器、连接器钻研得比较深的?
我很想知道编译器在遇到class的定义,和class的实例化的时候都做了那些工作?
fishsward 2003-02-28
  • 打赏
  • 举报
回复
guan zhu
laolio 2003-02-28
  • 打赏
  • 举报
回复
就看编译器往里面加什么东西了。
ttzzgg_80713 2003-02-28
  • 打赏
  • 举报
回复
是呀,就象有1万年那么久
dishou 2003-02-28
  • 打赏
  • 举报
回复
很好,好久没见CSDN有这种氛围了。
fit2002 2003-02-28
  • 打赏
  • 举报
回复
kk
JoshuaLi 2003-02-28
  • 打赏
  • 举报
回复
对earthharp、chinajiji表示五体投地
xbin999 2003-02-28
  • 打赏
  • 举报
回复
earthharp(骄傲的石头) 、chinajiji(菜鸟叽叽), Tommy 说的有理
学习了一把,也验证了一下。
muche 2003-02-28
  • 打赏
  • 举报
回复
学习中!
acefr 2003-02-28
  • 打赏
  • 举报
回复
有意思的问题。。。。。
如果在考虑继承,多重继承,虚拟多得继承,有函数的情况下,结果又如何呢?
各位高手可否解答一下。
ybco 2003-02-28
  • 打赏
  • 举报
回复
阴沟里翻了大船。我天天跟这类CODE打交道, 还是弄错了。
洒家决定从此退隐江湖 ----- 1 个月。不来了。

各位玩好!!!
JoshuaLi 2003-02-28
  • 打赏
  • 举报
回复
学习
Frank001 2003-02-28
  • 打赏
  • 举报
回复

我刚才对非静态成员和静态成员都做了测试,

验证了chinajiji说的:非静态成员可以link 成功,静态成员与成员函数不能link成功。

应该说chinajiji的理解是对的,我起初的理解有误。呵呵。
cber 2003-02-28
  • 打赏
  • 举报
回复
呵呵,一天不到,来捧场的人还真不少;)

说实话,这个问题大家在实际开发时碰到的机会不多,所以在我昨天刚碰到时,人也蒙了,写了一个“不行”,乱说了一通。直到出来后仔细想想,才发现自己错了:(不过我当时想的比chinajiji(菜鸟叽叽)的要漏掉了一个static的情况

昨天晚上和一位朋友谈起它可能出现的情况,觉得还是有可能在开发中会碰到这种情况的,只是不管怎么说,用它都是一种hack的做法,不值得在项目中推广……

晚上结分……
加载更多回复(46)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧