第五周程序阅读
2015-04-01 20:31
225 查看
#include <iostream> using namespace std; class base { private: int m; public: base() {}; base(int m){this->m=m;} int get(){return m;} void set(int m){this->m=m;} };//base_end int main() { base *ptr; ptr=new base[2]; ptr->set(30); ptr=ptr+1; ptr->set(50); base a[2]= {1,9}; cout<<a[0].get()<<","<<a[1].get()<<endl; cout<<ptr->get()<<","; ptr=ptr-1; cout<<ptr->get()<<endl; delete[] ptr; return 0; }
运行结果:
学习心得:这个程序很好理解,this指针指向形参并复制,main函数里ptr指针指向一个新开辟的数组。接下来调用ptr所指向对象的成员函数。改变了数组的值。第一次没有改变值,因此还是照原来的输出,第二次输出调用了ptr所指向对象的成员函数,并且之前ptr+1,所以是从a[1]开始,然后减一,输出a[0]。