1.考虑二维数组,在栈上分配,必须在编译时确定大小,也就是大小是常量.另外一点,C++不支持在堆上分配二维数组.怎么解决这个问题? 二维数组可以看成,一维数组的数组.因此,可以使用代理类,Array2D的元素是Array1D,Array1D是一维数组,为了支持[][]操作,Array2D重载操作符[],Array1D重载操作符[]. 2.区分operator[]的读写操作,考虑string,基于引用计数的string,赋值是浅拷贝,两个指针指向同一块内存.通过[]获取string中的字符,如果只