C++学习笔记——高级应用
目录
1、对象数组
2、this指针
3、静态数据成员
4、静态成员函数
5、对象成员
6、友元
7、运算符重载
一、对象数组
在一组连续的内存空间里面存放多个类型相同的对象
二、this指针
又称对象指针,保存对象的首地址,是隐含的指针,每一个成员函数中都有一个隐藏的this指针,this指针指向的就是对象的地址,哪一个对象调用该成员函数,该指针就指向调用它的对象。特别的静态成员函数中没有this指针
三、静态数据成员
1、声明使用static关键字
2、静态数据成员与普通数据成员的区别:
(1)静态数据成员在创建类的时候就产生了;普通数据成员在创建对象的时候分配空间创建。
(2)静态数据成员只有一个拷贝,不管创建了多少个对象,都只有一个拷贝,并不会创建新的空间,可以理解为该静态数据成员属于该类的,不属于具体的哪一个对象,不随对象的销毁而销毁;普通数据成员与对象个数有关,每创建一个对象就分配一个新空间产生一个普通数据成员,随着对象的创建而创建,随着对象的销毁而销毁。
(3)访问方式
静态数据成员:类名::变量
普通数据成员:对象.变量
3、静态数据成员的定义和声明
在类内声明 static int num;
类外定义int 类名::num;
四、静态成员函数
1、声明使用static关键字
2、静态成员函数只能访问静态数据成员和全局变量,不能访问普通的数据成员。
其作用就是处理静态数据成员
五、对象成员
什么是对象成员?——>类里面的数据成员是其他类的对象称之为对象成员
六、友元
1、什么是友元?
为什么要发明友元?——>由于类的私有成员是受到保护的,只有类的成员函数可以使用私有成员,那么当想要在类的外部使用私有成员的时候就没有办法访问,所以为了在类外访问私有成员,发明了友元(函数、类),使用关键字friend声明、就相当于类的隐藏数据给外部世界开了一个小口,这样就可以通过这个小口访问内部世界了。友元也相当于朋友,我声明你是我的朋友,你就可以用我的东西了了解我的隐藏数据。
2、友元的作用是什么?
使用类就可以访问一个类里面的私有成员,并且安全,
3、友元的分类:
(1)友元函数
友元函数就是一个函数,他不是类的成员函数,是外部函数,声明在类里,定义既可以在类里面也可以在类外部。
(2)友元成员函数
指某一个类的成员函数作为另一个类的友元成员函数,在另一个类里面声明friend其他类的成员函数为我的友元成员函数,这样就可以访问其他类的私有成员了
(3)友元类
七、运算符重载
1、概念:运算符重载就是重新定义这个运算符的功能,比如把=重新定义功能,就不再是简单的赋值功能了
2、运算符重载就相当于一个函数,这个函数的功能就是改变和重新定义运算符的功能
3、用法:返回值类型 operator 运算符 (参数为对象的引用){ 实现功能 }
——每天八杯水