Question: We can call destructor explicitly through class pointer, why not constructor? Any idea?

```
#include <iostream>

class Con {
public:
    Con( int x ) : x( x ) {

    }

private:
    int x;
};

int main() {
    Con* c = new Con( 1 );
    //c->Con( 2 ); //illegal
    c->~Con(); // ok!
    delete c;
}

```

Thanks,

Answer: 
You can only call the constructor when the object is **being constructed**, hence it's name. Once the object is constructed, I see no reason why you'd want to call it again on the same object. If you want to do something then, you need to call a function defined in that class.
No you cant call the constructor of a class the way you explained, and that's because, c doesn't point to a valid object of con type.