c++类实现

来源:互联网 发布:lua ide vscode 编辑:程序博客网 时间:2024/06/05 14:44

大部分已经实现,小部分大同小异

因为上课还没上到运算符重载,以前写优先队列之类的都是friend重载,今天意外的发现有些不能用friend那个样子重载。

/**************大概的已经完成了***************/#include <cstdio>#include <cstring>#include <iostream>using namespace std;/*int main(){    char s1[]="abc";    char s2[100];    strcpy(s2,s1);    printf("%s",s2);}*/class   STRING{public:    STRING(const char* p=NULL){        if(p==NULL){           data = new char[100];           *data = '\0';           Size=0;        }        else{           Size = strlen(p);           data = new char[Size+1];               strcpy(data,p);        }    }    void operator = (const STRING& S1){        strcpy(data,S1.data);        return;    }    bool operator == (const STRING& s1){        return strcmp(data,s1.data);    }    friend ostream& operator << (ostream& out, const STRING& str){        out<<str.data;        return out;    }     friend istream& operator >> (istream& in, const STRING& str){        in>>str.data;        return in;    }    ~STRING(void){        if(data != NULL){            delete[] data;        }    }    int operator [](int x){        return *(data+x);    }private:    char *data;    int Size;};int main(){    STRING S1="hello";    cin>>S1;    cout<<S1;}


0 0
原创粉丝点击