C++ 容器怎么存放不同类型的值 发表于 2023-10-01 分类于 C和CPP 最简单粗暴的方法是 1void * 稍微工程一点的方法是 1234struct MyType{ enum class TypeName; union data;}; 再OO一点的方法是 1class IObject{}; 作为通用基类。
泛型和多态 发表于 2023-09-08 分类于 编译器和解释器 都可以实现多类型 泛型 容器内的元素:类型可以参数化 模版函数:形参可以参数化,不同的类型可以共享相同的函数 好处是:编译器可以检查类型一旦类型确定,就不能再更改,所以不能用于容纳多个类型的容器 继承多态不同的派生类型有各自的同名函数 容器可以同时容纳同一个基类的不同的派生类型
函数式编程和闭包 发表于 2023-09-08 更新于 2024-05-20 分类于 编译器和解释器 闭包闭包是特殊的函数,代码 + 数据绑定在一起,(普通函数只有代码,没有数据,这个数据不是函数的形参,也不是函数内部定义的变量,而是从外部捕获进来),闭包捕获的这些外部数据其实保存在堆上,闭包上下文负责内存管理。 阅读全文 »
mongodb 总结 发表于 2022-08-15 更新于 2022-08-28 分类于 数据库 本地安装Downlaod and Install12mongodb-org-server_5.0.7_rc0_amd64.debmongodb-org-shell_5.0.7_rc0_amd64.deb 阅读全文 »
《Crafting Interpreters》读书笔记 发表于 2022-07-31 更新于 2024-09-23 分类于 编译器和解释器 要点[源代码] –> 词法分析 –> [token串] –> 编译器第一轮(语法分析) –> [语法树] –> 编译器第二轮(中间语言转换/翻译) –> [中间语言] –> 中间语言 VM 执行/解释 –> [原生机器语言] 编译器第一轮和第二轮可以合并成一轮,直接输出中间语言,在现代语言实现里不常见,只用于教学。 以 VM 为分界点,前面可以看成 解释型 语言,用 VM 来解释执行,可能用到即时编译。如果走完全过程,发布原生机器语言,就是 编译型 语言 阅读全文 »
软件技术大会列表 发表于 2022-07-31 更新于 2022-10-26 分类于 软件技术大会 除了计算机学术会议,对于软件开发者来说,由软件基金会或者IT厂商举办的软件技术大会也值得关注。 阅读全文 »
面向对象的 C 语言 发表于 2022-07-18 更新于 2022-07-21 分类于 C和CPP 模拟 C++ 使用的方法:虚函数表https://github.com/ityuhui/ooc/blob/main/main.c 阅读全文 »
2022 年度举办的部分计算机顶会 发表于 2022-06-06 更新于 2022-07-18 分类于 计算机学术会议 计算机系统OSDI 2022 SOSP(只在单数年份举办,今年不举办) 计算机网络SIGCOMM 2022 阅读全文 »