小弟现在对继承的问题有些疑惑,当子类继承父类后,子类对象的内存布局是什么样子的呢?有图最好 以c++来说子类对象先是父类的内存拷贝,然后是自己的扩展部分?其中内存中保存的主要是变量吧 函数属于类 对象中只有函数地址,对于虚函数的的函数表又是怎么保存呢? 另外如果在父类和子类中都有this指针的话他们是不是都是指向子类的对象? 对于以上问题不是很清楚,求大侠给出系统解释 ,小弟在此谢过
by gaozhongshan - C/C++ - 2007-07-05 12:59:41 阅读(1645) 回复(3)
如下代码: [code] class A { public: int a; char x; }; class B : public A { public: char y; }; class C : public B { public: char z; }; int main() { cout << sizeof(A) << sizeof(B) << sizeof(C) << endl; return 0; } [/code] 我测试了一下,32位机上,结果为 8,12,12. 肯定涉及到内存对齐的问题。但为什么B和C对象的大小是一样的呢?从内存上来看,这三者对象的数据成员是怎放置的?...
char * fun() { char *s="abc"; return s; } printf("%s",fun()); //结果是乱码 请问“abc”存放在内存哪啊 谢谢 [ 本帖最后由 1980116 于 2007-10-31 18:38 编辑 ]
下面这种继承体系在内存中布局应该是什么样的呢? [code]class A; class B : virtual public A; class C : public A; class D : public B, public C; [/code] 它与:[code] class A; class B : virtual public A; class C : virtual public A; class D : public B, public C;[/code] 有什么不同?
程序运行主页面的布局方式是:有一个顶部导航条显示程序模块图标。和退出图标。 界面的其他部分的左侧或右侧是日历和任务显示。这个部分占界面的宽度的25-30%。其余部分就是主程序的显示部分了。 这个说的是groupware部分的界面风格,webmail部分界面是不相同。 webmail部分使用的是不同的风格。实际上我说的界面风格是模仿open-xhange的你们可以去看看那个。 另外在设计具体页面时我觉的要有几个原则,我能想到的就是有两条。一...
请问在嵌入式系统里中断栈 在A 和 B 的两种布局 哪一种更好,为什么? (处理器支持中断嵌套) [ 本帖最后由 quicksandj2 于 2007-10-9 11:03 编辑 ]
由于MIPS分kseg0,kseg1,kuseg,kseg2等区,而且启动不是在0x00000000,看了部分See MIPS Run和一些资料,还是很难理解MIPS的启动过程。请问各位大侠: 1)MIPS启动时到底那个区分别映射到哪些地址上?我的bootloader,kernel,rootfs到底放在哪些区中? 2)没有MMU的MIPS 在内存上是怎样布局的? 盼回复,非常感谢!
我在一个工厂工作,看到人家在DOS下用的内存测试程式,请问这样的程式是怎么工作的,他到底在做些什么?他是怎么实现的,希望能得到各位高人的指点~ ps:希望得到的回答不是叫我去问厂里面的开发人员,因为我根本就接触不到他们,谢谢!