介绍
本篇文章为大家展示了怎么在c++中使用这个指针和空指针,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
c++通过提供特殊的对象指针,这指针,解决上述问题。<强>这指针指向被调用的成员函数所属的对象强>
这指针是隐含每一个非静态成员函数内的-种指针
这指针不需要定义,直接使用即可
这指针的用途:
- <李>
当形参和成员变量同名时,可这指用针来区分
在类的非静态成员函数中返回对象本身,可使用返回这
一,这指针
第一指针解决名称冲突
# include & lt; iostream> using namespace 性传播疾病; class 人 { 公众: 人(int 年龄) { 时间=age 年龄; } int 年龄; };//1,解决名称冲突 void test1 () { Person p1 (18); cout & lt; & lt;,“p1的年龄为=?& lt; & lt;, p1.age & lt; & lt;, endl; } int main (), { test1 (); return 0; }
输出年龄乱码
光标放在形参的年龄上,发现三个年龄都是灰色,系统认为这个三个年龄是同一数据
<强>解决1:强>
将成员变量和形参书写是上加m_区分
class 人 { 公众: 人(int 年龄) { 时间=m_Age 年龄; } int m_Age; };
<强>解决2:强>
这指针指向被调用的成员函数所属对象
class 人 { 公众://1,解决名称冲突 人(int 年龄) {//这个指针指向,被调用的成员函数,所属对象=这→age 年龄; } int 年龄; };
2返回对象本身用*这
class 人 { 公众://1,解决名称冲突 人(int 年龄) {//这个指针指向,被调用的成员函数,所属对象=这→age 年龄; }//2,返回对象本身用* void PersonAddAge (Person , p) { 这→age +=, p.a ge; } int 年龄; };//1,解决名称冲突 void test1 () { Person p1 (18); cout & lt; & lt;,“p1的年龄为=?& lt; & lt;, p1.age & lt; & lt;, endl;//2,返回对象本身用* Person p2 (10); p2.PersonAddAge (p1); cout & lt; & lt;,“p2的年龄为=?& lt; & lt;, p2.age & lt; & lt;, endl; }
//2,返回对象本身用* Person , PersonAddAge (Person , p) {//这个指向p2的指针,而*这指向的就是p2这个对象的本体 这→age +=, p.a ge; return *; }
完整代码
# include & lt; iostream> # includeusing namespace 性传播疾病;//1,解决名称冲突//2,返回对象本身用* class 人 { 公众://1,解决名称冲突 人(int 年龄) {//这个指针指向,被调用的成员函数,所属对象=这→age 年龄; }//2,返回对象本身用* Person , PersonAddAge (Person , p) {//这个指向p2的指针,而*这指向的就是p2这个对象的本体 这→age +=, p.a ge; return *; } int 年龄; };//1,解决名称冲突 void test1 () { Person p1 (18); cout & lt; & lt;,“p1的年龄为=?& lt; & lt;, p1.age & lt; & lt;, endl;//2,返回对象本身用* Person p2 (10); p2.PersonAddAge (p1) .PersonAddAge (p1) .PersonAddAge (p1); cout & lt; & lt;,“p2的年龄为=?& lt; & lt;, p2.age & lt; & lt;, endl; } int main (), { test1 (); return 0; } 怎么在c++中使用这个指针和空指针