#include <iostream>
using namespace std;

class X {};

class Y {
    X* p;                                                         //(A)
public:
    Y( X* q ) : p( new X(*q) ){ cout<< "constructor called\n"; }                                  //(B)
    ~Y(){ delete p; cout << "destructor called\n"; }                                             //(C) 
};

int main() {
    X* px = new X();                                              //(D)
    Y y( px );                                                    //(E)
    delete px;                                                    //(F)
    return 0;
}