// 创建类对象的指针 #include #include #include using namespace std; class A { public: char *msg; public: A() { this->msg = (char *)malloc(30); strcpy(this->msg, "haha"); } A(const char *msg) { this->msg = (char *)malloc(30); strcpy(this->msg, msg); } ~A() { cout << this << "release msg : " << this->msg << endl; free(this->msg); // free(this); } }; int main() { A *a1 = new A; cout << "a1->msg: " << a1->msg << endl; A *a2 = new A("disen 666"); cout << "a2->msg: " << a2->msg << endl; // 【注意】指针释放空间时, 不会自动执行对象的析构函数 // 可以通过手动调用 对象的析构方法 或使用 delete a1->~A(); free(a1); // a2->~A(); // delete a1; delete a2; A a3; // 注意: delete 只能删除 new 出来的对象,即对象的指针 // A &a4 = a3; // delete &a4; return 0; }