String类的实现
来源:互联网 发布:ae cc 2015 mac注册机 编辑:程序博客网 时间:2024/05/16 02:08
在笔试过程中,一直被问到一些STL源码的实现,趁着昨天刚写,今天把String类的实现整理出来,方便以后面试的时候用到。
class myString{public:myString(const char* data=NULL);myString(const myString& data);myString& operator = (myString & data);virtual ~myString();public:char* m_data;};myString::myString(const char* data ){if( data ){m_data = new char[strlen(data) + 1];strcpy(m_data, data);}else{m_data = new char[1];*m_data = '\0';}}myString::~myString(){delete[] m_data;}myString::myString(const myString& data){m_data = new char[strlen(data.m_data) + 1];if( !m_data )exit(1);strcpy( m_data, data.m_data );}myString& myString::operator=(myString& data){if( this == &data )return *this;else{delete[] m_data;m_data = new char[strlen(data.m_data) + 1];strcpy( m_data, data.m_data );return *this;}}
最核心的因素就是每一次对myString类进行操作的时候,都要考虑1、内存分配与否,2、操作符重载时还要考虑内存是否需要重新分配(delete加new)。
0 0
- string类的实现
- String类的实现
- String类的实现
- String类的实现
- String 类的实现
- String类的实现
- string类的实现
- String类的实现
- String类的实现
- string类的实现
- string类的实现
- string类的实现
- string类的实现
- string类的实现
- string类的实现
- String 类的实现
- String类的实现
- String类的实现
- Oracle Package SendMail
- 正则表达式的用法
- 学生作业
- Android 编程下帧动画在 Activity 启动时自动运行的几种方式
- Java线程池使用说明
- String类的实现
- 学生作业
- 详解rsync算法--如何减少同步文件时的网络传输量
- Java中Heap与Stack的区别
- PAT 1029. Median (25)
- 1014状态栏
- PHP程序员的技术成长规划
- 在文本框中输入数字(包括负数,0,正整数),如果为其他值,则显示空
- UE4 Editor快捷键(ShortCut Key)