请先看结构体的基本运用
结构体运算符->
->运算符一般用来访问结构体中的指针内容,格式结构体名->指针名,例如s结构体中的*p指针:
1 | s->p |
this
this是当前结构体的指针,也可以用this来访问。
结构体函数
结构体不仅可以放变量也可以放函数,不过我们一般叫结构体里的函数为方法,也是通过.运算符来访问。
结构体函数里面可以直接访问当前结构体的变量。
当传入的参数和结构体某一个变量一样的话就可以使用刚学过的this来区分。
例如定义一个获取结构体中 $a,b$ 变量之和,可以写出如下代码
1 | struct s{ |
还有计算与另一个 $a,b$ 的和。
1 | struct s{ |
构建函数与消除函数
构建函数
函数名称为结构体名的函数就是构建函数,构建函数会在结构体初始化时调用。
构建函数没有返回值与函数类型。
消除函数
函数名称为~结构体名的函数就是消除函数,消除函数会在结构体被卸载时调用。
消除函数没有返回值与函数类型。
完整示例:
1 |
|
只读函数
在函数后加上const会让这个函数变为只能读取变量,不能修改变量的函数。例如:
1 | struct s{ |
公有与私有
我们使用public和private来规定变量的公有和私有,初始都是public。
私有是只有在结构体内部可以使用的,外部访问不了,使用场景:例如你要写一个分数(例如二分之一)结构体,你想让外部随便改你的分子分母,因为你想修改时要自动约分,你可以把 $a,b$ (分子分母)设为私有,然后有一个geta()和getb()函数用来获取,然后有seta(a),setb(b)函数来修改分母分子,修改时使用约分函数让 $a,b$ 都/__gcd($a,b$),这样就可以修改自动约分。
公有是像前面一样可以直接访问的。
示例
1 | struct s{ |
运算符重载
此章节难度大大大大大大,新手勿碰!此章节不用搞懂,有个印象就行了!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Sans!
评论