1 #include "stdafx.h" 2 #include <string.h> 3 #include <stdlib.h> 4 #include <iostream.h> 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 MyTest 42 { 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 }