简单模仿string类的设计实现.
2010-11-04 16:52
381 查看
#include<iostream> #include<stdio.h> using namespace std; class String { public: char* get(){return m_data;} String(const char *str=NULL); String(const String& other); ~String(); String& operator=(const String& other); private: char *m_data; }; String::String(const char* str) { cout<<"构造函数被调用了"<<endl; if(str==NULL) { m_data=new char[1]; *m_data='/0'; } else { int length=strlen(str); m_data=new char[length+1]; strcpy(m_data,str); } } String::~String() { delete m_data; cout<<"析构函数被调用了"<<endl; } String::String(const String& other) { cout<<"复制构造函数被调用了"<<endl; int length=strlen(other.m_data); m_data=new char[length+1]; strcpy(m_data,other.m_data); } String& String::operator=(const String& other) { cout<<"赋值函数被调用了"<<endl; if(this==&other) return *this; delete m_data; int length=strlen(other.m_data); m_data=new char[length+1]; strcpy(m_data,other.m_data); return *this; } void main() { String b; cout<<b.get()<<endl; String a("Hello"); cout<<a.get()<<endl; String c("World"); cout<<c.get()<<endl; String d=a; cout<<d.get()<<endl; d=c; cout<<d.get()<<endl; }
也算个经典问题吧.
相关文章推荐
- 基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版
- 简单web服务器的设计与实现
- CSDN开源夏令营 基于Compiz的switcher插件设计与实现之前期准备 git的简单使用
- 设计模式之观察者模式(有源码简单实现及java函数简单实现)
- 设计模式——策略模式:会员价格体系的简单实现
- Linux多线程实践(9) --简单线程池的设计与实现
- string类的简单实现
- 设计模式-简单工厂设计模式与策略模式之java实现
- 数字集成电路设计-7-一个简单cpu的设计,实现,仿真与综合
- 基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版
- 简单工厂设计模式C++实现
- python实现一个简单的图书馆借阅系统(不涉及数据库和界面设计)
- 【jquery模仿net控件】初步GridView模型实现,及其简单应用
- 设计一条简单的等待工作队列之软件模型设计与实现(二)
- 简单哈夫曼 编/译码系统的设计与实现
- DAO设计模式---实现一个简单的注册(中)
- Python GUI--Tkinter简单实现个性签名设计
- 设计模式:浅析 抽象工厂、工厂方法、简单(静态)工厂 java实现
- 基于Struts2和Android的简单登陆注册功能的设计与实现(待完善)
- 进程调度模拟程序设计-----FCFS算法简单实现