C++类中使用new及delete小例子
//默認復制構造函數的不足
//盡管有默認的復制構造函數來解決一般對象與對象之間的初始化問題, 但是在有些情況下我們必須手動顯式的去定義復制構造函數, 例如:
#include <iostream>
using namespace std;
class Book
{
?private:
??char *book_name;
?public:
??Book(const char *name)//構造函數
??{
???cout << "構造函數分配內存" << endl;
???book_name = new char[strlen(name) + 1];
???strcpy(book_name, name);
??}
??//Book(const Book & book)
??//{
???
??//}
??~Book() //析構函數
??{
???cout << "析構函數釋放內存空間" << endl;
???delete [] book_name;
??}
??void shoebook()
??{
???cout << "book_name : " << book_name << endl;
??}
??
};
int main()
{
?Book book("c++ primer plus");
?Book book1(book);
?book.shoebook();
?
?book1.shoebook();
?//總結缺點是析構函數會被執行兩次,
?//那么對同一塊堆空間會被釋放兩次
?
?return 0;
}
轉載于:https://www.cnblogs.com/xuyh/p/3204251.html
總結
以上是生活随笔為你收集整理的C++类中使用new及delete小例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android__Context
- 下一篇: VC使用编译时间作为版本号