43 lines
567 B
C++
43 lines
567 B
C++
#include <iostream>
|
|
using namespace std;
|
|
|
|
class A {
|
|
public:
|
|
A() {
|
|
cout << "A::A() called.\n";
|
|
}
|
|
virtual ~A() {
|
|
cout << "A::~A() called.\n";
|
|
}
|
|
};
|
|
|
|
class B: public A {
|
|
public:
|
|
B(int i) {
|
|
cout << "B::B() called.\n";
|
|
buf = new char[i];
|
|
}
|
|
virtual ~B() {
|
|
delete [] buf;
|
|
cout << "B::~B() called.\n";
|
|
}
|
|
|
|
private:
|
|
char *buf;
|
|
};
|
|
|
|
void fun(A *a) {
|
|
delete a;
|
|
}
|
|
|
|
int main() {
|
|
A *a = new B(15);
|
|
fun(a);
|
|
}
|
|
|
|
/*
|
|
A::A() called.
|
|
B::B() called.
|
|
B::~B() called.
|
|
A::~A() called.
|
|
*/ |