class中缺省的4个函数的实现

来源:互联网 发布:小宇电玩淘宝店 编辑:程序博客网 时间:2024/06/15 03:45

class类中默认会实现4个函数,分别为默认构造函数,拷贝构造函数,析构函数和=运算符重载

#include <iostream>using namespace std;class myString{public:myString(const char *str=NULL);myString(const myString &other);~myString();myString & operator=(const myString &other);showString();private:char *m_data;};myString::~myString(){delete [] m_data;}myString::myString(const char *str){if (str == NULL){m_data = new char[1];*m_data = '\0';} else{int length = strlen(str)+1;m_data = new char[length];while(*str != '\0')*m_data++ = *str++;*m_data = '\0';}}myString::myString(const myString &other){int length = strlen(other.m_data)+1;m_data = new char(length);strcpy(m_data,other.m_data);*m_data = '\0';}myString & myString::operator=(const myString &other){if (this == &other){return *this;} delete []m_data;int length = strlen(other.m_data)+1;m_data = new char[length];strcpy(m_data,other.m_data);return *this;}myString::showString(){cout<<this->m_data<<endl;}int main(int argc,char **argv){myString str;char *p = "hello peter";myString dest(p);dest.showString();str = dest;str.showString();return 0;}