(10.2与对象有关的指针 指针可以指向任一类型的变量,也可以指向对象。 (L对象的指针 声明一个指针来保存对象的地址,这个指针就是指向 对象的指针,简称对象的指针。对象的指针的声明方 法与普通变量的指针相同 形式如下:类名*对象的指针名 通过对象的指针间接访问对象成员的方式相应地表示为 (对象的指针名)数据成员名 访问数据成员 对象的指针名),成员函数名(参数表)访问成员函数 因为间接访问运算符“”的优先级低于成员选择运 算符“”,所以表达式中对象的指针名两边的圆括号 不能省略
通过对象的指针间接访问对象成员的方式相应地表示为: 因为间接访问运算符“*”的优先级低于成员选择运 算符“.”,所以表达式中对象的指针名两边的圆括号 不能省略。 注 1. 对象的指针 形式如下: 类名 *对象的指针名 声明一个指针来保存对象的地址,这个指针就是指向 对象的指针,简称对象的指针。对象的指针的声明方 法与普通变量的指针相同。 (*对象的指针名).数据成员名 //访问数据成员 (*对象的指针名).成员函数名(参数表)//访问成员函数 指针可以指向任一类型的变量,也可以指向对象。 【10.2 与对象有关的指针】
例如一声明的类 Cylinder,可做如下声明和访间 Cylinder cylinder Cylinder "cylinder=&cylinder (cylinder). setcylinder(2 (20.0,20.0 (cylinder). surfacearea C++语言提供了另一个更常用的方法 表述形式如下 对象的指针名-→>数据成员名;访问数据成员 对象的指针名->成员函数名(参数表);∥访问成员函数 “->”也叫做成员选择运算符,该运算符可 用于通过对象的指针或结构变量的指针来访 问其中的成局 例如一声明的类 Cylinder,也可做如下声明和访问: ylinder cylinder Cylinder *cylinder=&cylinder; cylinder ->setcylinder(200, 20.0); pcylinder->surfacearea;
例如—-声明的类Cylinder,可做如下声明和访问: Cylinder cylinder1; Cylinder *pcylinder=&cylinder1; (*pcylinder).setcylinder(20.0,20.0); (*pcylinder).surfacearea(); 表述形式如下: 对象的指针名->数据成员名; //访问数据成员 对象的指针名->成员函数名(参数表);//访问成员函数 例如—-声明的类Cylinder,也可做如下声明和访问: Cylinder cylinder1; Cylinder *pcylinder=&cylinder1; pcylinder ->setcylinder(20.0,20.0); pcylinder->surfacearea(); “->”也叫做成员选择运算符,该运算符可 用于通过对象的指针或结构变量的指针来访 问其中的成员。 C++语言提供了另一个更常用的方法:
使用对象的指针前也一定要给指针赋一个合法的值 例10.2对象的指针的声明与访问 #includesiostream. h> class date 声明类 public: Date(inty=2001,intm=1,intd=1);∥带默认值的构造函数 - Date ∥析构函数 void setdate( int y,int m,intd);∥用于改变目期的函数 void show Date const; /用于输出日期的函数 private: int year, month, day Date: Date(int y,int m,int d) /实现构造函数
对象的指针的声明与访问 #include<iostream.h> class Date //声明类 { public: Date(int y=2001,int m=1,int d=1); //带默认值的构造函数 ~Date(){} //析构函数 void setDate(int y,int m,int d); //用于改变日期的函数 void showDate() const; //用于输出日期的函数 private: int year,month,day; }; Date::Date(int y,int m,int d) //实现构造函数 使用对象的指针前也一定要给指针赋一个合法的值。 例 10.2
year=y; (续) month-m, day=d void date:; set Date(int y,int m, int d)∥实现改变日期的函数 i year=y month=m; day=d; void date:; chordate(0 const∥实现输出日期的函数 cout<<year<“年”<<monh<<“月”<<day<“日”<<end void maino Date date: ∥声明对象 Date pdate=&date; 声明对象
{ year=y; month=m; day=d; } void Date::setDate(int y,int m,int d) //实现改变日期的函数 { year=y; month=m; day=d; } void Date::showDate() const //实现输出日期的函数 { cout<<year<<“年”<<month<<“月”<<day<<“日”<<endl; } void main() { Date date; //声明对象 Date *pdate=&date; //声明对象的指针 (续)