静态成员函数、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<指向对象的指针变量名>
当动态对象释放后,指向动态对象的公有数据成员的指针指向的地址不变,但原有数据值发生改变
结果如下:
·静态成员函数
·静态成员函数就是使用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<指向对象的指针变量名>
当动态对象释放后,指向动态对象的公有数据成员的指针指向的地址不变,但原有数据值发生改变
结果如下:
相关文章推荐
- C++关于this指针、静态变量和静态成员函数 http://www.cnblogs.com/clrmas/archive/2010/03/23/1692893.htm
- This 指针和静态成员函数
- 函数指针 类成员函数指针 类静态成员函数指针 使用实例
- this指针指向当前调用对象,只是用于类的非静态成员函数。静态函数和全局函数 无当前对象,无this指针。
- 类和对象 , 四个默认成员函数及运算符重载 , 隐含的this指针
- C++之指针(对象指针+对象成员指针+this指针[待补充])
- 详解this指针--为什么空的对象指针可以调用成员函数
- C++非静态成员函数的this指针
- 面向对象的程序设计学习笔记-19-静态成员函数的使用
- boost准模板库date迭代器(指针)使用以及常用的两个静态成员函数is_leap_year()和end_of_month_day()
- this 指针的地址--调用成员函数的所在对象的起始地址
- C++关于this指针、静态变量和静态成员函数
- C++ 类 & 对象-C++ 内联函数-C++ this 指针-C++ 类的静态成员
- 非静态成员函数与this指针
- 类和对象(this指针、默认成员函数及运算符的重载)
- C++静态成员函数小结(转)
- 静态成员变量和静态成员函数的使用
- C++静态成员函数小结
- 谈函数指针(全局/类成员函数)和函数对象
- 类成员函数指针的使用