1l1111111姐姐 1l1111111姐姐
关注数: 5 粉丝数: 29 发帖数: 587 关注贴吧数: 22
求大神解释指针问题 #include<iostream> #include<string.h> using namespace std; class String { public: String(char a[100]="Hello world"); String(String &a); ~String(); void set(); void print(); int operator ==(String &a); int operator <(String &a); int operator >(String &a); int operator <=(String &a); int operator >=(String &a); int operator !=(String &a); private: char *c; }; String::String(char a[]) { c=new char[strlen(a)+1]; *c=a[100]; } String::String(String &a) { c=new char[strlen(a.c)+1]; c=a.c; } String::~String() { cout<<c<<"析构函数被调用"<<endl; } void String::set() { char a[100]; cin>>a; int i; c=new char(strlen(a)+1); c[0]='a'; for(i=-1;c[i]!='/0';i++) { *(c+i)=a[i]; } } void String::print() { cout<<c<<endl; } int String::operator ==(String &a) { int i; i=strcmp(c,a.c); if(i==0) return(1); else return(0); } int String::operator <(String &a) { int i; i=strcmp(c,a.c); if(i==-1) return(1); else return(0); } int String::operator >(String &a) { int i; i=strcmp(c,a.c); if(i==1) return(1); else return(0); } int String::operator <=(String &a) { int i; i=strcmp(c,a.c); if(i==-1||i==0) return(1); else return(0); } int String::operator >=(String &a) { int i; i=strcmp(c,a.c); if(i==0||i==1) return(1); else return(0); } int String::operator !=(String &a) { int i; i=strcmp(c,a.c); if(i==1||i==-1) return(1); else return(0); } int main() { String c1,c2; c1.set(); c1.print(); c2.set(); c1.print(); if(c1==c2) { cout<<"等于"<<endl; } if(c1<=c2) { if(c1<c2) cout<<"小于"<<endl; } if(c1>=c2) { if(c1>c2) cout<<"大于"<<endl; } if(c1!=c2) { if(c1<c2) cout<<"小于"<<endl; else cout<<"大于"<<endl; } c1.print(); c2.print(); return(0); } 这个不知道为什么会有野指针
1 下一页