C++多继承,指针问题

C++中多继承的派生类最开始的位置是第一个基类,其后才是第二三四…个基类。所以派生类对象后面的基类的地址与派生类地址不同,但在将派生类地址赋值给基类指针时会自动转换。

#include <iostream>
using namespace std;
class A
{
    public:int a;
};
class B
{
    public:int b;
};
class C : public A, public B
{
    public:int c;
};
int main()
{
    C c;
    A *pa=&c;
    B *pb=&c;
    C *pc=&c;
    cout<<pa<<endl<<pb<<endl<<pc<<endl;
    return 0;
}

以上代码的某次运行结果为

0x7ffffffedc8c
0x7ffffffedc90
0x7ffffffedc8c

发布日期:
分类:C++

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注