读书人

异常很离谱 求指教

发布时间: 2012-11-05 09:35:12 作者: rapoo

错误很离谱 ,求指教
astring::astring(const char *init){
int len=strlen(init);
maxsize=(len>defaultsize)?len:defaultsize;
ch=new char[maxsize+1];
if(ch==NULL){cerr<<"存储分配失败\n";exit(1);}
curlength=len;
strcpy(ch,init);
}



f:\p4_2\astring.h(28) : error C2143: syntax error : missing ')' before ';'
f:\p4_2\astring.h(28) : error C2059: syntax error : ')'
f:\p4_2\astring.h(28) : error C2143: syntax error : missing ';' before '?'
执行 cl.exe 时出错.

p4_2.exe - 1 error(s), 0 warning(s)


[解决办法]
x.cpp

C/C++ code
#include<cstdlib>#include<iostream>#include<cstring>using namespace std;#define defaultsize 128//;class astring{public:    astring(int sz);    astring(const char * init);    ~astring(){delete []ch;}    char& operator[] (int i);    void frequency(char *p);private:    char *ch;    int curlength;    int maxsize;};astring::astring(int sz){    maxsize=defaultsize;    ch=new char[maxsize+1];    if(ch==NULL){cerr<<"Allocation error\n";exit(1);}    curlength=0;    ch[0]='\0';}astring::astring(const char *init){    int len=strlen(init);    maxsize=(len>defaultsize)?len:defaultsize; //这行的错误,说是少分号括号的    ch=new char[maxsize+1];    if(ch==NULL){cerr<<"存储分配失败\n";exit(1);}    curlength=len;    strcpy(ch,init);}char& astring::operator [] (int i){    if(i<0||i>=curlength)    {cout<<"字符串下标越界!\n";exit(1);}    return ch[i];}void astring::frequency(char* p){    int count=0,m;    for(int i=0;p[i]!='\0';i++){        m=p[i];        for(int j=i;p[j]!='\0';j++)            if(p[j]==m) {count++;p[j]='#';}            cout<<"字符串中"<<m<<"出现"<<count<<"次"<<endl;    }}int main(){    return 0;} 

读书人网 >C++

热点推荐