C++类中使用new及delete小例子
2024-09-30 07:43:10
//默认复制构造函数的不足
//尽管有默认的复制构造函数来解决一般对象与对象之间的初始化问题, 但是在有些情况下我们必须手动显式的去定义复制构造函数, 例如:
#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;
}
最新文章
- vsftp匿名用户搭建
- 慕课网-Java入门第一季-7-5 Java 中带参无返回值方法的使用
- python自省函数getattr的用法
- Java7并发编程实战(一) 线程的中断
- 使用Flashbuilder/Flashbuilder-plugins搭建Flex工程每日构建(自动化构建)的方法
- mysql merge表介绍
- JSP验证码
- C#实现防拷贝工具示例
- 初窥C++11:自己主动类型推导与类型获取
- AFHTTPRequestOperationManager当一个网络请求加入菊花
- 解决在eclipse中写ImageView时有警告的问题
- Python内置函数(30)——super
- ORACLE ORA-01653: unable to extend table 的错误
- firefox中遇到的offsetX的问题
- luogu 1471
- maven工程之pom模板(hadoop、hive、hbase)
- 【nginx】之proxy_pass
- python中的swapcase
- C++编译器详解(一)
- Linux服务器ftp+httpd部署
热门文章
- android 之 GridView
- 关于hadoop学习的思考(一) —— 小的知识点的总结
- MongoDB的正确使用姿势
- Tinkoff Challenge - Final Round (Codeforces Round #414, rated, Div. 1 + Div. 2) 继续跪一把
- 九度oj题目1008:最短路径问题
- 开源中国+soucetree
- BZOJ 3926 [Zjoi2015]诸神眷顾的幻想乡 ——广义后缀自动机
- Android SurfaceView与View
- hdu 4849
- Paul Graham:梦寐以求的编程语言