- 博客(8)
- 收藏
- 关注
原创 golang的interface使用(非原理)
本文通过一个接口(CommonWork)将两种类型(Class、Company)的调用功能(Entry、Graduate)进行抽象。 1. 功能抽象:两种类型通过同一个接口调用方法,实现了合理的封装和抽象; 2. 降低使用成本:使用该方法的人仅关注入参和返回值即可使用类似的功能。
2023-11-27 01:45:10
408
原创 C++:重载输出运算符<<为什么必须写成非成员函数?
1. 运算符作为成员函数时,其左侧运算对象必须是运算符所属类的一个对象 首先明白一个基本概念,对于成员函数,其左侧运算对象必须是运算符所属类的一个对象。也就是说左侧的这个对象必须和运算符必须同属一个类,否则当其他类的对象调用该符号 << 时,在其他类内找不到该符号的成员函数。 该概念在C++Primer第五版14.1内解释过: 2. 然后基于上述概念可以解释为什么 << 不可以是 成员函数。 class bookshop { public: bookshop }
2021-02-03 16:44:01
1329
原创 【C++Primer】泛型编程之定制操作(谓词、lambda表达式、参数绑定bind)
定制操作 C++允许我们自己决定算法的操作方式,这就叫做定制操作。通常情况下提供给算法自己定制操作的方式即为谓词。 向算法传递函数 向算法传递函数是通过谓词完成的, 谓词 #F44336: 是什么:一个可调用的表达式(如同平常的“<”, “>”, “==”) 返回结果:其返回结果是一个能 用作条件的值, 类型:标准库算法所使用的谓词可分为两类:一元谓词和二元谓词。 例子:为了使排序先按单词的长度,再按字母表中的顺序进行排序,故采用接受一个二元谓词参数的sort版本用这个谓词代替“<”来比较
2020-05-12 21:50:56
475
原创 【C++Primer】泛型算法简述
引言 初识泛型算法 写容器元素的算法 算法不检查写操作 back_inserter(插入迭代器) 拷贝算法 重排容器元素的算法 定制操作 向算法传递函数 1、引言 泛型算法 大多数算法都定义在头文件algorithm中,标准库的头文件numeric中定义了一组数值型算法。泛型算法的作用是通过迭代器间接访问容器,不会执行容器的操作,只运行在迭代器之上,迭代器可以做什么,泛型算法就可以做什么。 迭代器算法不依赖于容器,但算法依赖于元素类型的操作。 2、初识泛型算法 2.1写容器元素的算法.
2020-05-11 17:16:21
353
原创 C语言:数据之作用域、链接属性和存储类型总结
作用域 作用域分为4种,文件作用域、函数作用域、代码块作用域和原型作用域。 有什么作用呢?从字面就可以知道,变量在只能在某个区域才体现他们的作用。①其他函数体无法的通过其名字访问它们 ②不同作用域可使用相同名字,而不产生冲突。 作用域和链接属性关系 缺省的 变量的存储类型指变量值的内存类型,变量的类型最主要的是关乎该变量何时创建、何时销毁以及它的值能保留多久!存储位置不同造成变量具有不同的特性。...
2020-02-05 20:14:24
318
原创 C++中“&引用”和“&取地址”的区别
作用上的不同 &作为引用是某一变量(目标)的一个别名,必须在定义时候就进行初始化,若不进行初始化则会编译报错。 &作为取地址时,用来获取指针指向的元素所在内存中的地址值。 用法上的不同 和类型在一起的是引用,和变量在一起的是取址(表现形式为:引用在赋值=的左边,而取地址在赋值的右边) int a=3; int &b=a; //引用 int *p=&a;...
2020-02-05 15:41:37
573
原创 函数原型、函数声明和函数定义之间关系
函数原型 int power(int m, int n) 依次是 函数返回类型、函数名和形参列表 函数原型不需要函数体,也不需要形式参数的名字,用分号作为原型的结束符。 对于形参列表只需要 说明需要几个参数,分别为什么类型即可,因此用以下方式描述也可以。 int power(int , int ) 函数声明 int power(int base, int n) 依次是 函数返回类型、...
2019-10-19 11:16:40
2351
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人