Полиморфизм и адреса
От: RiNSpy  
Дата: 24.01.17 22:00
Оценка:
Что выведет этот код и почему?

// Example program
#include <iostream>
#include <string>

using namespace std;

class A
{
public:
    int a;
};

class B: public A
{
public:
    int b;
};

class C: public A
{
public:
    int c;
};

class D: public B, public C
{
public:
    int d;
};

void f1(B* b)
{
    cout<<b->b<<" "<<b->a<<endl;
    cout<<b<<endl;
}

void f2(C* c)
{
    cout<<c->c<<" "<<c->a<<endl;
    cout<<c<<endl;
}

int main()
{
    D d;
    d.c = 1;
    d.b = 2;
    d.C::a = 3;
    d.B::a = 4;
    cout<<&d<<endl;
    f1(&d);
    f2(&d);
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.