C++周总结
一、this指针(返回对象本身,解决重名冲突)
- 没什么好说的,就是一个指针,引用对象自身的数据,要用 -> 符号获取,比如:
this->age = age;
1. Person& AddPerson(Person p)
{
this->age += age;
return *this;
}
P1.AddPerson(10).AddPreson(10).AddPerson(10);
二、空指针访问成员函数
- 对象空指针可以访问对象的方法,但是得没有用到this的方法。比如对象里面使用了对象的属性age时候,就相当于是this->age
- 为了保证健壮性,可以这样:
void ABC()
{
if(this == NULL)
{
return;
}
cout << name <<endl;
}
三、const修饰成员函数,对象
- 不能修改成员属性
- 但是成员加了mutable就可以了
void ABC() const
{
age = 9;
}
int age;
但是
相当于 const Person *const this;的第一个const
void ABC()
{
age = 9;
}
mutable int age;
- 不能修改对象的值,但是加了mutable就可以了
- 常对象只能调用常函数
四、友元(可以访问private)
- 全局函数做友元
把函数声明写在类里面
friend void ABC (Person *p);
- 类做友元
student是被访问的类
写在主动访问的类里
friend class student;
- 成员函数做友元
friend void goodGay::visit();
三、重载运算符
Person operator+(const Person &p)
{}
Person operator+(const Person &p1, const Person &p2)
{}
ostream& operator << (otream& cout, Person &p)
{
return cout;
}
后续略
算是又踩坑了,得慢慢来,认真一步步来。
|