C++第三周
第一天
第二天
类的定义

类的构造函数
引用:




对于不同权限的访问,可以通过友元

类的构造和析构函数






友元:


三种情况:
1,全局函数做友元
2,类做友元
3,成员函数做友元
运算符重载
1,通过全局函数实现运算符重载
2,通过成员函数实现运算符重载

左移运算符重载:不能用成员函数来实现,只能用全局函数重载来实现
疑问:在类的定义和初始化区分文件开来,利用friend来实现重载左移运算符访问私有变量数据会出问题?

递增运算符重载++
重载前置++运算符 返回引用为了一直对一个数据就行递增
重载后置递增运算符 返回的是值而不是引用
原因:因为前置是先运算有了结果后输出,需要得到的是当前修改后结果。而后置是得到的结果为运算前的数据,然后再对这个数据进行一个递增操作。


继承
发生继承关系时,子类会继承父类的所有成员。但是不会继承构造函数和析构函数。但是会隐式调用父类无参构造,显示调用有参构造。所以建议父类不管是否使用到无参构造,尽量提供一个无参构造。
对于继承关系中同名的成员的调用规则:


对于上面的第三条,即当父类中出现函数重载。而子类只对重载的函数的某一个函数进行了重定义时。是无法通过子类对象调到其余重载的函数的。如下:



子类重定义了父类的无参的func函数,但是子类是无法通过s.func(10)来调用到父类的重载函数的。因为子类同名函数会全部覆盖父类所有的同名函数。想要访问只能加域名限定。
对于继承中同名的静态成员调用的处理方法:

但是对于静态成员不仅可以通过对象访问,还能通过类名访问。

多态

多态发生的条件:1,需要有继承关系。2,需要子类重写父类的虚函数。
关于重写和重定义的区别和相同:
重写:子类将父类中的方法进行改写。
重定义:也发生在继承的过程中。区别在于被重写或者重定义的成员函数有无virtual关键字。


多态的定义:父类类型的指针指向子类类型的对象,调用父类的函数,展现子类的功能
随机数
在c++中实现随机数的步骤:1,先添加一个随机种子srand((unsigned int)time(NULL)) 2,导入ctime头文件 3,使用到int number= rand();获得一个时间数字。4,获得某一个区间的数字 int number = rand()%100+1。取出来一个1-100区间的数字。

浙公网安备 33010602011771号