前言
哈哈哈,小编又来了!
重点
1.静态成员
如果类的数据成员或成员函数使用关键字static进行修饰,这样的成员称为静态数据成员或静态成员函数,统称为静态成员。
如果在类中仅对静态数据成员进行声明,则必须在文件作用域的某个地方进行定义。在进行初始化时,必须进行成员名限定。例如:
class Test {
static int x; //静态数据成员
}
int Test:: x=25; //初始化静态数据成员
注意:1.静态成员是类的成员,不是对象的成员
2.静态成员函数不能直接访问非静态函数
2.友元函数
友元函数可以存取私有成员、公有成员和保护成员。
分享一下我们的小总结:friend写在谁里面,谁就可以被访问;friend写在Two里面,Two就可以被访问,One是Two的友元函数,Two里面的函数名是One里的。
友元函数不具有传递性和交换性,同时也不是类的成员函数。
3.const对象
常量成员包括常量数据成员,静态常数据成员和常引用。静态常数据成员仍保留静态成员特征,需要在类外进行初始化,常数据成员和常引用只能通过初始化列表来获得初值。
class Base{
private:
int x;
const int a; //常数据成员只能通过初始化列表来获得初值
static const int b; //静态常数据成员
const int& r; //常引用只能通过初始化列表来获得初值
}
const int Base::b=25; //静态常数据成员在类外进行初始化
Base::Base(int i,int j):x(i),a(j),r(x) {} //初始化列表
4.构造函数(析构函数)是不被继承的,所以一个派生类只能调用他的直接基类的构造函数。当定义派生类的一个对象时,首先调用基类的构造函数,对基类成员进行初始化,然后执行派生类的构造函数。析构函数的执行顺序和执行构造函数时的顺序正好相反。
5.派生
1)公有派生:
基类 | 派生类 |
---|---|
公有 | 公有 |
保护 | 保护 |
不可访问和私有 | 不可访问 |
2)私有派生:
基类 | 派生类 |
---|---|
公有 | 私有 |
保护 | 私有 |
不可访问和私有 | 不可访问 |
3)保护派生:
基类 | 派生类 |
---|---|
公有 | 保护 |
保护 | 私有 |
不可访问和私有 | 不可访问 |
6.向量
向量中存储元素的多少可以在运行中根据需要动态的增长或缩小。
vector <type> name; //定义type的向量空表
vector <type> name(length); //定义具有length个type的向量,元素初始化为0
vector <type> name(length,a); //定义具有length个type的向量,元素初始化为a
vector <type> name1(name); //使用已定义的向量name构造向量name1
用iterator
声明向量的正向泛型指针的一般形式为:
vector <type> :: iterator 泛型指针名;
声明逆向泛型指针使用reverse _ iterator
,声明的方法如下:
vector <数据类型> :: reverse _ iterator 指针名;
7.访问向量容量信息的方法
size():返回当前向量中已经存放的对象的个数
max_size():返回向量可以容纳最多对象的个数
capacity():返回无需再次分配内存就能容纳的对象个数。当存储空间已满,又增加元素的时候,在原来的基础上自动翻倍扩充
max_size()>=capacity()>=size()
empty():当前向量为空时,返回true值
8.纯虚函数
一个类可以说明多个纯虚函数,包含有纯虚函数的类称为抽象类。从一个抽象类派生的类必须提供纯虚函数的实现代码,或在该派生类中仍将它说明为纯虚函数。
virtual void area()=0; //纯虚函数
virtual void area() { } //空的虚函数
9.运算符重载
运算符重载的实质就是函数重载
类运算符:作为类的成员函数的重载运算符;友元运算符:作为类的友元重载运算符
. :: * ?: 这四个不可以重载
经过重载,运算符不改变原有的优先级,操作数数目和结合性
类运算符比友元运算符少一个参数,因为成员函数具有this指针
总结
C++的总结将会告一段落,提一点学习的建议吧:看书的时候一定要看书上的代码,对于理解文本性的内容很有帮助,希望明年的现在,大家都有一个好的成果。