C++ - 多继承
来源:互联网 发布:java高并发项目 编辑:程序博客网 时间:2024/06/17 15:36
class B class C
^ ^
/ /
/ /
/ /
class D
p=24500,*p=217f8
p=24504,*p=b
p=24508,*p=21804
p=2450c,*p=c
p=24510,*p=d
class A
^
/ /
/ /
/ /
class B class C
^ ^
/ /
/ /
/ /
class D
p=41390,*p=21a88
p=41394,*p=a
p=41398,*p=1
p=4139c,*p=b
p=413a0,*p=21a94
p=413a4,*p=a
p=413a8,*p=1
p=413ac,*p=c
p=413b0,*p=d
-- appendix: definition of class A, class B, class C
class A {
public:
A():a(0xa),i(0x1) {}
virtual ~A() {};
public:
int a;
int i;
};
class B :public A {
public:
B():b(0xb) {}
virtual ~B() {}
public:
int b;
};
class C :public A {
public:
C():c(0xc) {}
virtual ~C() {}
public:
int c;
};
class D : public B, public C {
public:
D():d(0xd) {}
virtual ~D() {}
public:
int d;
};
int main(int argc, char *argv[])
{
D *d = (D *)new D();
int *p = (int *)d;
for(int i=0;i<sizeof(D)/4;i++)
{
printf("p=%x,*p=%x/n",(p+i),*(p+i));
}
printf("/n");
// printf("i=%d/n",d->i); // !!! Here d->i cannot be accessed, because "For A::i, the base class A is ambiguous in D.",
// this is why virtual inherit is introduced.
return EXIT_SUCCESS;
}
- objective C多继承
- 【c++】多继承
- [c++]多继承
- C++_多继承
- Objective C实现多继承!
- C继承和多态
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective C实现多继承
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- C# 生成XML时的特殊字符出现异常处理
- Linux常用头文件
- CString与std::string unicode下相互转化
- ASCII
- 解决远程连接mysql错误1130代码的方法
- C++ - 多继承
- FileUpload上传多文件时出现“无法访问已关闭的文件”错误的解决方法
- 与学生谈“编程”和“考试”
- LAMP全安装详解
- QQ在线客服浮动窗口
- Linux下MySQL开放root的远程访问权限
- 当当卓越京东商城货物配送流程揭秘
- 如何以dba身份登陆isqlplus
- jsf简单错误解决