混迹于C++之继承机制中的构造器和析构器
2013-01-04 14:08
148 查看
继承机制中的构造器和析构器
摘自《高质量程序设计指南》
摘自《高质量程序设计指南》
#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++】【学习笔记】【017】继承机制中的构造器和析构器
- 混迹于C++之继承器中的构造器与析构器
- 继承机制中的构造器和析构器 - C++快速入门17
- 继承机制中的构造器和析构器 - C++快速入门17
- 【c++】继承机制中的构造器和析构器
- 混迹C++ 之构造器和析构器
- C++中子类继承父类构造器和析构器的执行顺序
- 继承机制中的构造器与析构器
- C++(笔记)解释继承机制中构造器与析构器
- c++多继承机制
- 构造器和析构器 - C++快速入门15
- 混迹于C++之基类和子类之多重继承(三)
- 《黑客免杀攻防学习笔记》——C++继承与虚函数机制
- C++的虚拟继承机制
- [C++学习笔记]构造器析构器与this指针
- 浅谈C++之继承机制
- 构造器和析构器 - C++快速入门15
- c++虚函数实现机制以及类继承中的内存分布
- 从c++的菱形继承到 C#的接口机制
- C++对象模型Data语意学分析、虚继承底层实现机制