您的位置:首页 > 其它

静态成员函数、this指针、对象指针和动态对象使用小结

2017-11-20 22:13 936 查看
先声明一个Time类



·静态成员函数

·静态成员函数就是使用static 关键字声明的成员函数
   
在类外实现时不加static关键字,只有在类内声明时才加static
·静态成员函数是类的一部分,作用是为了处理静态数据成员
   没有this指针
·静态成员函数可以直接访问该类的静态成员,但不能直接访问类中的非静态成员
·若想在静态成员fun中使用非静态成员,则必须通过参数传递方式得到对象名,然后通过对象名来访问非静态成


 
·this指针
·this指针是一个特殊的隐含指针,它隐含于成员函数,除静态成员函数外每个成员函数都有一个this指针
·this指针的值是当前被调用的成员函数所在的对象的起始地址
·当一个对象调用成员函数,先将对象地址赋给this指针,然后调用成员函数,每次成员函数存取数据成员,则隐式调用this指针
·this调用例子



因为构造函数Time中的参数三second与数据成员second重名,故必须显式的使用this指针
·this指针一般用于返回当前对象自身,同样也可以使用 *this 来标识该成员函数的当前对象
x   this->x    (*this).x
·this指针是一个const指针,成员函数不能对其赋值

·成员指针1.指向数据成员的指针
数据类型名 *指针变量名;
eg:



2.对象指针
<类名>*<对象指针名>
·通过对象指针访问对象成员
<对象指针名>-><公有成员>
(*<对象指针名>).<公有成员>

3.指向公有成员的指针变量
数据类型名(类名::*指针变量名)(参数列表);
即:指针变量名 = &类名::成员函数名;     ----使得指针变量指向一个公有成员的一般形式
eg:





动态对象与指向动态对象变量的指针

·动态对象
由new创建动态对象,其格式为
1.new <类名>;
2.new <类名>(初值列表);//初值的个数形式必须与类中的构造函数的参数列表形式相同
用delete删除new建立的对象
delete<指向对象的指针变量名>



当动态对象释放后,指向动态对象的公有数据成员的指针指向的地址不变,但原有数据值发生改变

结果如下:




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: