Code:
class A
{int i;
public:
A(int j=0):i(j){}
virtual void print()
{cout<<"i="<<i<<endl;}
void print(char *s)
{cout<<s<<i<<endl;}
};
class B:public A
{int i;
B(int j=0):A(5),i(j){}
void print()
{cout<<"i="<<i<<endl;}
int print(char *s)
{cout<<s<<i<<endl;
return i;}
};
main()
{
B b1,b2(10),*pb=&b2;
A a1,a2(10),*pa;
a1.print();
a2.print();
b1.print();
b2.print();
a1.print("a1.i=");
a2.print("a2.i=");
b1.print("b1.i=");
b2.print("b2.i=");
pa=pb;
pa->print();
pa->print("b2.i=");
pb->print();
pb->print("b2.i=");
}
class A
{int i;
public:
A(int j=0):i(j){}
virtual void print()
{cout<<"i="<<i<<endl;}
void print(char *s)
{cout<<s<<i<<endl;}
};
class B:public A
{int i;
B(int j=0):A(5),i(j){}
void print()
{cout<<"i="<<i<<endl;}
int print(char *s)
{cout<<s<<i<<endl;
return i;}
};
main()
{
B b1,b2(10),*pb=&b2;
A a1,a2(10),*pa;
a1.print();
a2.print();
b1.print();
b2.print();
a1.print("a1.i=");
a2.print("a2.i=");
b1.print("b1.i=");
b2.print("b2.i=");
pa=pb;
pa->print();
pa->print("b2.i=");
pb->print();
pb->print("b2.i=");
}
Na ekranu se ispisuje sledece:
i=0
i=10
i=0
i=10
a1.i=0
a2.i=10
b1.i=0
b1.i=10
i=10
b2.i=5
i=10
b2.i=10
Sve mi je jasno sem ova dva reda tj. njihovih ispisa
Code:
pa->print();
pa->print("b2.i=");
pa->print();
pa->print("b2.i=");
nije mi jasno kako se za ove f-je dobija:
i=10
b2.i=5
Ima neka fora sa tipom pokazivaca i na sta sam pokazivac pokazuje al ne mogu da uklavirim