this指针介绍
this是一个指针,默认被const修饰,也指明了这是一个常量指针,无法修改指向地址,关于this指针,总结为以下三点:
- this指针指向被调用的成员函数所属的对象
- this指针是隐含每一个非静态成员函数内的一种指针
- this指针不需要定义,可以直接使用
用途:
当形参与成员变量同名时,可以用this指针来区分
在类的非静态成员函数中返回对象本身,可以使用: return *this
class Person
{
Person(age)
{
//形参与成员变量同名,无法赋值
//age = age;
this->age = age;
}
//必须使用引用的方式返回
Person& PersonAddAge(Person p)
{
this->age += p.age;
return *this;
}
int age;
}
void test01()
{
Person p1(10);
cout << "p1 age is:" << p1.age << endl;
Person p2(10);
//链式编程
p2.PersonAddAge(p1)..PersonAddAge(p1).PersonAddAge(p1);
cout << "p2 age is:" << p2.age << endl;
}
int main()
{
test01;
}
/*******************************************************************************************************************/
友元:在程序中,有些私有属性也想让类外特殊的一些函数进行访问,就需要用到友元的技术,友元的目的就是让一个函数或者类访问另一个类的成员 关键字:----> friend
全局函数做友元
将全局函数用friend关键字声明在类的最开始 这个函数可以访问类的成员,无论是私有还是共有
friend void func();
类做友元
将类用friend关键字声明在类的最开始 这个函数可以访问类的成员,无论是私有还是共有
friend class classname();