65,186
社区成员




#include <iostream>
using namespace std;
class A {
int a;
public:
// A() { cout << "A was construct!" << endl; }
A(int t) : a(t) { cout << "A was construct..." << endl; }
virtual void some() = 0;
virtual void display() { cout << "A display() was called!" << endl; }
void print() { cout << "A print() was called!" << " A::a is: " << a << endl; }
~A() { cout << "A was destroy!" << endl; }
};
class B : public A {
int b;
public:
// B() { cout << "B was construct!" << endl; }
B(int t, int m) : A(t), b(m) { cout << "B was construct..." << endl; }
void some() { cout << "I have some trouble" << endl; }
void display() { cout << "B display() was called!" << endl; }
void print() { cout << "B print() was called!" << " B::b is: " << b << endl; }
~B() { cout << "B was destroy!" << endl; }
};
int main()
{
B pb(5, 6);
pb.some();
pb.print();
A* pa = &pb;
pa->some();
pa->display();
pa->print();
return 0;
}
A was construct...
B was construct...
I have some trouble
B print() was called! B::b is: 6
I have some trouble
B display() was called!
A print() was called! A::a is: 5
B was destroy!
A was destroy!