Chinaunix首页 | 论坛 | 博客
  • 博客访问: 731690
  • 博文数量: 741
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4825
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-18 11:18
文章分类

全部博文(741)

文章存档

2011年(1)

2008年(740)

我的朋友

分类:

2008-09-18 11:31:21

自己编了一个字符串类代码如下:
#include
using namespace std;

const int n=40;
class mystring {
        char str[n];
        int maxsize;
        int last;
public:
        mystring(){
                last=0;
                maxsize=n;
                str[0]='\0';
        }
        mystring(char *s){
                last=-1;
                maxsize=n;
                do{
                        last++;
                        str[last]=s[last];
                }while(s[last]!='\0'&&last                 str[last]='\0';
        }
        mystring(mystring &ms){
                last=ms.last;
                maxsize=ms.maxsize;
                do{
                        last++;
                        str[last]=ms.str[last];
                }while(ms.str[last]!='\0'&&last                 str[last]='\0';
        }
        ~mystring(){}
        void show(){
                cout<         }
        bool operator<(mystring &);
        mystring & operator=(char *s);
        char operator[](int);
        mystring operator+(mystring &);
        mystring operator+=(mystring &);
        bool operator>(mystring &);
        bool operator==(mystring &);
};
bool mystring:: operator<(mystring &ms){
        int i=0,k;
        do{
                k=str-ms.str;
                i++;
        }while(k==0&&i         if(k<0) return true;
        if(i==last&&i!=ms.last) return true;
        return false;
}
mystring &mystring:: operator=(char *s){
        last=-1;
        do{
                last++;
                str[last]=s[last];
        }while(s[last]!='\0'&&last         str[last]='\0';
        return *this;
}

char mystring:: operator[](int i){
        return *(str+i);
}
mystring mystring:: operator+(mystring &ms){
        int i=0;
//        mystring str;
        for( i=0; str!='\0';i++ ){;
        }
        for( int j=0;*(ms.str+j)!='\0' &&i                 str[i++]=ms.str[j];
        }
        str='\0';
        return *this;
}
mystring mystring:: operator+=(mystring &ms){
        int i=0;
//        mystring str;
        for( i=0; str!='\0';i++ ){;
        }
        for( int j=0;*(ms.str+j)!='\0' &&i                 str[i++]=ms.str[j];
        }
        str='\0';
        return *this;
}
bool mystring:: operator>(mystring &ms){
        int i=0,k;
        do{
                k=str-ms.str;
                i++;
        }while(k==0&&i         if(k>0) return true;
        if(i!=last&&i==ms.last) return true;
        return false;
}
bool mystring:: operator==(mystring &ms){
        int i=0,k;
        do{
                k=str-ms.str;
                i++;
        }while(k==0&&i         if(i==last&&i==ms.last) return true;
        return false;
}
一个主程序如下:
#include
#include "mystring.h"
using namespace std;
templatevoid bubblesort(T *slist,int n){
        bool noswap;
        int i,j;
        T temp;
        for( i=0;i                 noswap=true;
                for( j=n-1;j>i ;j-- ){
                        if(slist[j]                                 temp=slist[j];
                                slist[j]=slist[j-1];
                                slist[j-1]=temp;
                                noswap=false;
                        }
                }
                if(noswap) break;
        }
}
int main(){
        const int h=10;
        int i;
        mystring list[10]={"cat","book","car","zoo","fish","cab","dog","cap","fox","can",""};
        cout<<"未排序数组:"<         for( i=0;i                 list.show();
        }
        bubblesort(list,h);
        cout<<"已排序数组:"<         for( i=0;i                 list.show();
        }
        return 0;

编译时出现如下问题,请帮忙费点时间看看
bubble.cpp: In function ‘int main()’:
bubble.cpp:26: 错误:‘mystring [10]’的初始值设定项太多
bubble.cpp:26: 警告:不建议使用从字符串常量到‘char*’的转换
bubble.cpp:26: 错误:对‘mystring::mystring(mystring)’的调用没有匹配的函数
mystring.h:24: 附注:备选为: mystring::mystring(mystring&)
mystring.h:15: 附注:         mystring::mystring(char*)
bubble.cpp:26: 警告:不建议使用从字符串常量到‘char*’的转换
bubble.cpp:26: 错误:对‘mystring::mystring(mystring)’的调用没有匹配的函数
mystring.h:24: 附注:备选为: mystring::mystring(mystring&)
mystring.h:15: 附注:         mystring::mystring(char*)
bubble.cpp:26: 警告:不建议使用从字符串常量到‘char*’的转换
bubble.cpp:26: 错误:对‘mystring::mystring(mystring)’的调用没有匹配的函数
mystring.h:24: 附注:备选为: mystring::mystring(mystring&)
mystring.h:15: 附注:         mystring::mystring(char*)
bubble.cpp:26: 警告:不建议使用从字符串常量到‘char*’的转换
bubble.cpp:26: 错误:对‘mystring::mystring(mystring)’的调用没有匹配的函数
mystring.h:24: 附注:备选为: mystring::mystring(mystring&)
mystring.h:15: 附注:         mystring::mystring(char*)
bubble.cpp:26: 警告:不建议使用从字符串常量到‘char*’的转换
bubble.cpp:26: 错误:对‘mystring::mystring(mystring)’的调用没有匹配的函数
mystring.h:24: 附注:备选为: mystring::mystring(mystring&)
mystring.h:15: 附注:         mystring::mystring(char*)
bubble.cpp:26: 警告:不建议使用从字符串常量到‘char*’的转换
bubble.cpp:26: 错误:对‘mystring::mystring(mystring)’的调用没有匹配的函数
mystring.h:24: 附注:备选为: mystring::mystring(mystring&)
mystring.h:15: 附注:         mystring::mystring(char*)
bubble.cpp:26: 警告:不建议使用从字符串常量到‘char*’的转换
bubble.cpp:26: 错误:对‘mystring::mystring(mystring)’的调用没有匹配的函数
mystring.h:24: 附注:备选为: mystring::mystring(mystring&)
mystring.h:15: 附注:         mystring::mystring(char*)
bubble.cpp:26: 警告:不建议使用从字符串常量到‘char*’的转换
bubble.cpp:26: 错误:对‘mystring::mystring(mystring)’的调用没有匹配的函数
mystring.h:24: 附注:备选为: mystring::mystring(mystring&)
mystring.h:15: 附注:         mystring::mystring(char*)
bubble.cpp:26: 警告:不建议使用从字符串常量到‘char*’的转换
bubble.cpp:26: 错误:对‘mystring::mystring(mystring)’的调用没有匹配的函数
mystring.h:24: 附注:备选为: mystring::mystring(mystring&)
mystring.h:15: 附注:         mystring::mystring(char*)
bubble.cpp:26: 警告:不建议使用从字符串常量到‘char*’的转换
bubble.cpp:26: 错误:对‘mystring::mystring(mystring)’的调用没有匹配的函数
mystring.h:24: 附注:备选为: mystring::mystring(mystring&)
mystring.h:15: 附注:         mystring::mystring(char*)

[ 本帖最后由 lgyaa 于 2008-6-21 19:34 编辑 ]

--------------------next---------------------

阅读(882) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-11-06 22:14:39

把char 替换成const char 试试