混迹于C++之继承机制中的构造器和析构器
来源:互联网 发布:windows 查看mac地址 编辑:程序博客网 时间:2024/05/21 13:21
继承机制中的构造器和析构器
摘自《高质量程序设计指南》
#include <iostream>#include <string.h>using namespace std;class String{public:String(const char *str="");//默认构造函数String(const String& copy);//拷贝构造函数~String();//析构函数String& operator=(const String& assign);private: size_t m_size;//保存当前长度 char *m_data;//指向当前字符串的指针};//String 的默认构造函数String::String(const char *str){ if(str == NULL) { m_data=new char[1]; *m_data='\0'; m_size=0; } else { int length=strlen(str); m_data=new char[length+1]; strcpy(m_data,str); m_size=length; }}String::String(const String& other)//拷贝构造函数{ //提示:允许操作other的私有成员m_data size_t len = strlen(other.m_data); m_data = new char[len+1]; strcpy(m_data,other.m_data); m_size = len;};String& String::operator=(const String& other)//拷贝赋值函数{ //(1)检查自赋值 if(this != &other){ //(2)分配新的内存资源,并复制内容 char *temp= new char[strlen(other.m_data)+1]; strcpy(temp,other.m_data);//copy '\0' together //(3)释放原有的内存资源 delete []m_data; m_data=temp; m_size=strlen(other.m_data); } //(4)返回本对象的引用 return *this; };String::~String(void){ delete []m_data;}int main(){ String s; return 0; }
- 混迹于C++之继承机制中的构造器和析构器
- 混迹于C++之继承器中的构造器与析构器
- 混迹C++ 之构造器和析构器
- 【c++】继承机制中的构造器和析构器
- 混迹于C++之基类和子类之虚继承(二)
- 混迹于C++之多继承和多继承
- 混迹于C++之拷贝赋值函数和拷贝构造函数(一)
- 混迹于C++之拷贝赋值函数和拷贝构造函数(二)
- 混迹于C++之拷贝赋值函数和拷贝构造函数(三)
- 混迹于C++之基类和子类之多重继承(三)
- 【C++】【学习笔记】【017】继承机制中的构造器和析构器
- 继承机制中的构造器与析构器
- 混迹于C++之基类和子类(一)
- 混迹于C++之引用和指针的比较
- 混迹于C++之静态属性和静态函数
- 混迹于C++ 之运算符重载
- 混迹于C++之getline函数
- 混迹于C++之友元关系
- Spring 命名bean的错误
- 数据库性能优化
- js高级语言
- android播放器如何获取音乐文件信息
- Ebay一些数据分析
- 混迹于C++之继承机制中的构造器和析构器
- 高通增大分区以及烧录失败解决
- gvim安装配置
- Java 普通算法研究一
- HttpClient 教程 (一)
- shell脚本详解
- Struts2 的工作原理
- Byte、KB、MB、GB、TB、PB、EB、ZB、YB、DB、NB你知多少
- android 中Intent 的用法