常引用 口常引用 const类名&引用名; ·常引用可以绑定到常对象,也可以绑定到普通对象 ●不能通过常引用来修改常引用所绑定的对象 ● 普通引用不能绑定到常对象 ex11 ref const.cpp 在C+编程中,经常用常指针和常引用作函数参数,这样既可以节省存储 量和运算时间,又能保证数据的安全。 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 7 常引用 常引用 常引用可以绑定到常对象,也可以绑定到普通对象 不能通过常引用来修改常引用所绑定的对象 普通引用不能绑定到常对象 const 类名 & 引用名; 在 C++ 编程中,经常用常指针和常引用作函数参数,这样既可以节省存储 量和运算时间,又能保证数据的安全。 ex11_ref_const.cpp
2 对象数组与对象指针 ■对象数组的声明与初始化 指向对象的指针、this指针 特殊符号:-> 指向成员的指针 持久内存分配:new、delete http://math.ecnu.edu.cn/-jypan 8
http://math.ecnu.edu.cn/~jypan 8 对象数组与对象指针 对象数组的声明与初始化 指向对象的指针、this 指针 特殊符号:-> 指向成员的指针 持久内存分配:new、delete 2
对象数组的声明与引用 类名数组名[n]; /声明 数组名[k].成员名; /1使用 口对象数组的初始化:对每个元素都调用构造函数 Example Point(){x=0;y=0} Point(int a,int b){x=a;y=b; int main() Point A[2]={Point(),Point(2,3); http://math
http://math.ecnu.edu.cn/~jypan ... .. Point() { x=0; y=0} Point(int a, int b) { x=a; y=b; } ... ... int main() { Point A[2]={Point(), Point(2,3); ... ... } 9 对象数组的声明与引用 对象数组的初始化:对每个元素都调用构造函数 类名 数组名[n]; // 声明 数组名[k].成员名; // 使用 Example
对象指针 对象指针:指向对象的指针,存放对象的地址 ▣对象指针的声明 类名*对象指针名; Point a(1,2); Example Point pa =&a; 口用对象指针访问对象成员:“->” 对象指针名->成员名 //对象指针特有方式,推荐使用 (*对象指针名).成员名/1普通方式 口指向常对象的指针:const类名*对象指针名; http://math.ecnu.edu.cn/~jypan 10
http://math.ecnu.edu.cn/~jypan 10 对象指针 用对象指针访问对象成员:“ -> ” 对象指针的声明 Point a(1,2); Point * pa = &a; 对象指针:指向对象的指针,存放对象的地址 类名 * 对象指针名; 对象指针名->成员名 // 对象指针特有方式,推荐使用 (*对象指针名).成员名 // 普通方式 指向常对象的指针:const 类名 * 对象指针名; Example
this指针 this指针: 隐含在非静态成员函数中的特殊指针,指向目的对象,由系统自动生成 >this指针是常指针 ·若局部作用域中存在与类成员同名的标识符,则可以通过this指针 访问目的对象的成员,如数据成员与局部变量同名。 当通过对象调用(非静态)成员函数时,系统会自动生成指向该对象的hs指针。 ↑非静态成员函数有this指针,而静态成员函数没有this指针。 http://math.ecnu.edu.cn/~jypan 11
http://math.ecnu.edu.cn/~jypan 11 this 指针 ► this 指针是常指针 ► 若局部作用域中存在与类成员同名的标识符,则可以通过 this 指针 访问目的对象的成员,如数据成员与局部变量同名。 this 指针: 隐含在非静态成员函数中的特殊指针,指向目的对象,由系统自动生成 † 非静态成员函数有 this 指针,而静态成员函数没有 this 指针。 † 当通过对象调用(非静态)成员函数 时,系统会自动生成指向该对象的 this 指针