#include <iostream>
using namespace std;
class Example {
friend void release(Example *exm);
private:
~Example(){}
};
int main()
{
Example *ex2 = new Example;
release( ex2 );
}
void release (Example *exm)
{
delete exm;
}
This calls the private destructor.
#include <iostream>
using namespace std;
class Example {
friend void release(Example exm);
private:
~Example(){}
};
int main()
{
Example *ex2 = new Example;
release(*ex2);
}
// The object is passed by value,
// so takes a copy of the object. The copy
// has a different address in memory
// so this won’t do what we want.
void release(Example exm)
{
delete &exm;
}