练习基本上是照着源码打的,,主要是各种const想不清楚原因和来由。
以下是自己的代码,已存为bign.h
#include提出了几个疑问,#include #include //此处不用.h using namespace std;//使用命名空间std struct bign//C++中取消了tpyedef { //this 关键字表示的意思是 &x 所以用*this才能操作 不过为什么不能*this.len呢? int len,s[3000];// 定义成员变量 //定义构造函数 C++专属 bign() { len=1; memset(s,0,sizeof(s)); } //定义对于数组的=运算法则 bign operator = (const char* num)//此处的const何用? { len = strlen(num); for(int i=0;i 0;i--) { if(s[i]!=b.s[i]) return s[i] (const bign& b)const { return b<*this;} bool operator >= (const bign& b)const { return !(b>*this);} bool operator <= (const bign& b)const { return !(*this>b);} bool operator != (const bign& b)const { return (*this b);} bool operator == (const bign& b)const { return !(*this != b);} } ;//";" 太重要了 //为bign定义< <和> >运算符 必须在外部istream& operator >>(istream &in,bign& x)//&的位置有关系么?{ string s; in>>s;//in表示输入的流 x=s.c_str();//把string 转换为char* return in; } ostream& operator <<(ostream &out,const bign& x)//此处要求x为const的{ out< 和>
1.为什么不能*this.len
2.bign operator = (const char* num)//此处的const何用?
3.istream& operator >>(istream &in,bign& x)//&的位置有关系么?