提示:本笔记是个人学习侯捷C++课程的总结笔记,欢迎来信指正批评!
第一篇 拷贝构造、拷贝赋值、析构
第二篇 堆、栈与内存管理
第三篇 编写String类
文章目录
- C++学习笔记
- 写个String类示例
- 构造函数
- 析构函数
- 拷贝构造
- 拷贝赋值
提示:以下是本篇文章正文内容,下面案例可供参考
写个String类示例mystring.cpp
#ifndef __STRING__
#define __STRING__
class String
{
public:
String(const char* cstr = 0);
String(const String& str);
String& operator = (const String& str);
~String();
char* get_c_str() const {return m_data;}
private:
char* m_data;
}
构造函数
inline String::String(const char* cstr=0)
{
if(cstr){
m_data=new char[strlen(cstr)+1];
strcpy(m_data,cstr);
}
else{
m_data = new char[1];
*m_data = ' ';
}
}
析构函数
inline String::~String()
{
delete[] m_data;
}
拷贝构造
inline String::String(const String& str)
{
m_data = new char[strlen(str.m_data)+1];
strcpy(m_data,str.m_data);
}
拷贝赋值
inline String& String::operator=(const String str)
{
if(this==&str)
return *this;
delete[] m_data;
m_data=new char[strlen(str.m_data)+1];
strcpy(m_data,str.m_data);
return *this;
}
String&中的&是引用,&str是取地址。



