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区间的数字。

 

posted @ 2022-03-24 01:26  AFK_W  阅读(28)  评论(0)    收藏  举报