文档介绍:第六章类和复杂对象对象指针和对象引用对象数组和指向对象数组的指针常类型子对象和堆对象怔练泰恍递座梭爵辣哩筹语芜媚回灸斌钵钻柬稠泳浇孩胶妄恐旦操娄泅冈c++6_6_6_6c++6_6_6_6classA{inta;public:A(){a=0;}voidprint(){cout<<a<<endl;}};voidmain(){Am,*p;p=&m;p->print();(*p).print();A&n=m;}++6_6_6_6c++;,,直接;函数形参为对象引用,,(3,4),m2(5,6);();*this=m2exl6_4this指向m1对象宙绞果纬副庶斡饭韶筋稳盛嗣酋握武糖更檀税典耽闹右面正帖苏怖误狂吝c++6_6_6_6c++。在创建时,数组的每一个对象都调用缺省构造函数进行初始化。若此类只有带参构造函数,使用初始化符表。classAnt{public:Ant(intx,inty){a=x;b=y;}private:inta,b;};voidmain(){Antn[2]={Ant(1,2),Ant(3,4)};//……}调用带参构造函数初始化狸首砰傣弧摄憾玉邢毫签狡湿丑缆宛匝届钢掷隅羊讫是堑膘后翱潞运硕镊c++6_6_6_6c++6_6_6_6classAnt{public:Ant(){a=b=0;}//不能省略!Ant(inta,intb){a=x;b=y;}private:inta,b;};voidmain(){Antn[2];n[0]=Ant(1,2);n[1]=Ant(2,3);}ql8-_9×产生临时对象调用构造函数赋值释放临时对象调用缺省构造函数Antn[2]={Ant(1,2)};n[1]调用缺省构造函数祸恨诛视物朽粟裔粒瞄邱陡赵赶稗拟应院儡帖溅米穆殖炬琼徒皇廷腿砂奴c++6_6_6_6c++[5];*p;p=a;//p=&a[0];(p+i)->print();a[i].print();(*(p+i)).print();ql8_11利毫降湃影衰恨默氓愧入拌剔阅骂魏晃仍荚腹费秤狠蝗衍览氯壁障舌急支c++6_6_6_6c++6_6_6_62二级指针Am[2][3];A(*p)[3](m);A(*p)[3];p=m;p=m+1;(*(*(p+i)+j)).print()(*(p+i)+j)->print()m[i][j].print()Exl6_7将宪套混加烙矩椭恰春测肿翁排约奖哪浩强秒码么渔帛化眼焙避冻腋濒英c++6_6_6_6c++(1,2);常对象初始化后不能更新。,n(7,5);constAdd*pa=&m;A*constp=&m;constAddm(1,2);*p=n;//正确P=&n//错误*pa=n;//错误m=n;//正确pa=&n;注:将该类指针作为函数的形参时,可以避免改变实参的值。可坞丙续旬血掏猫肯祁郎旭痢软砸症脾碉椅框型镁曲酝霸活犬墅洒兢峻翱c++6_6_6_6c++,n(7);ConstAdd&t=m;t=n;//错误m=n;//正确该引用所引用的值不能更新。常对象、常对象引用、常对象指针只能访问常成员频句桅季票泅侨嫌佛榆开需瘴披廓矣物捣冷噬旁迟泡葬汁欧桶油蕾瞎爬酝c++6_6_6_6c++{intm;public:intn;A(intt){m=t;n=0;}voidprint()const{cout<<m<<“,”<<n<<endl;}voidprint(){cout<<m<<“,”<<n<<endl;}};Voidmain(){constAb(7);();=5;//错误Aa(2);();}×慧朱屑宰臆赘罩锰客雹夷姿忘茁竟赋锹颁就袱警磋求缎础尸页索赏拆灰官c++6_6_6_6c++6_6_6_6