1 #include "stdafx.h" 2 #include3 #include 4 #include 5 6 class MyInt 7 { 8 private: 9 int m_nYear;10 int m_nMonth;11 int m_nDay;12 public:13 14 MyInt(int nYear = 0, int nMonth = 0, int nDay = 0)15 {16 m_nYear = nYear;17 m_nMonth = nMonth;18 m_nDay = nDay;19 }20 21 MyInt(const MyInt& theObj)22 {23 m_nYear = theObj.m_nYear;24 m_nMonth = theObj.m_nMonth;25 m_nDay = theObj.m_nDay;26 }27 28 ~MyInt()29 {30 m_nDay = 0; 31 }32 33 public:34 // operator int()35 // {36 // return m_nYear;37 // }38 };39 40 41 class MyTest42 {43 private:44 MyTest()45 {46 cout << "产生对象了, 亲!" << endl;47 }48 ~MyTest()49 {50 cout << "开始析构了, 亲!" << endl;51 }52 53 public:54 void Destructor()55 {56 delete this;57 }58 static MyTest* NewMyTest()59 {60 return (new MyTest);61 }62 };63 64 65 66 int main(int argc, char* argv[])67 {68 69 // MyTest theT; // 不能在栈中产生对象70 MyTest* lpT = MyTest::NewMyTest(); // 在堆中产生对象71 72 73 // 自己调用析构74 75 lpT->Destructor();76 77 return 0;78 }