C++:智能指针(二) 正文为什么要设计智能指针?看看下面的例子: 12345678910111213141516171819202122232425262728293031323334#include <iostream>#include <memory>#include <string>using namespace std;void memoryLeak1() { 2024-04-21 C++ #c++ #开发语言
C++:智能指针(一) 正文关于这个例子: 1234567891011121314151617181920#include <iostream>#include <memory>#include <string>std::unique_ptr<std::string> demo(const char *s) { std::unique_ptr<st 2024-04-21 C++ #c++ #开发语言
C++:返回值优化 正文对于返回一个对象的函数,它在返回后前,应该在栈外用复制构造函数创建一个临时对象t2,然后返回 t1,随后 t1 在栈内被析构掉,t2 被传回。如下: 1234567891011121314151617181920212223242526272829303132333435363738394041424344#include <iostream>#include <stri 2024-04-17 C++ #c++ #开发语言
C++:异常处理 异常处理中对象参数与引用参数的选择User: catch()中的参数如果使用基类的引用,是不是相当于声明了一个引用,它是基类类型的,catch 到 throw的抛出的对象之后,就相当于这个基类引用指向了抛出的对象? ChatGPT: 是的,你说得很对。当在 catch 块中使用基类的引用作为参数时,相当于声明了一个引用,它是基类类型的。当程序抛出一个异常并且在调用栈中找到匹配的 catc 2024-04-17 C++ #c++ #开发语言 #学习笔记
C++:弃值表达式 正文有时候需要利用某些表达式的副作用来实现某些目的: 12345678910#include <iostream>template <typename... Args>void print(const Args &...args) { Arr{0,(std::cout << args<< ' ' 2024-04-11 C++ #c++
关于一篇知乎答案的重现 〇、前言早上在逛知乎的时候,瞥见了一篇答案:如何通俗解释Docker是什么?感觉很不错,然后就耐着性子看了下,并重现了作者的整个过程。但是并不顺利,记载一下这些坑。嫌麻烦的话可以直接clone 研究,git仓库。 一、构建 ubuntu 文件系统具体可以看这篇文章:**Ubuntu Base构建根文件系统**。 主要步骤就是: 下载镜像 ubuntu-base-20.04.1-base-arm 2024-03-31 OS > 系统编程 > Unix/Linux #docker #系统编程 #tips
2023 个人总结 〇、前言这一年是成长的一年,记录一些感悟。这里没有吃吃喝喝与娱乐休闲,主要是对自己过去的总结、反思以及对未来的展望。 一、学习这一年经过了两个学期,分别是大一下以及大二上。 大一下,认真学习了学校开的《离散数学》、《线性代数》、《高等数学》,并且取得了不错的成绩。也杂七杂八地在课外学了一些其它的知识,比如 python 爬虫、Golang 爬虫、一些 web 基础知识、一点系统编程、多线程、协 2023-12-31 Personal_Summary #个人总结
mit6.s081【目录】 〇、前言现在是 2023 年 12 月 24 日,我终于完成了 mit6.s081课程的学习,期间读完了xv6book、OSTEP、xv6 部分内核源码,也写了 近 20 篇的博客,可以说是学习之旅收获颇丰。本文将会起一个目录,方便查找和阅读。 一、Lab:目录[mit6.s081] 笔记 Lab10: Networking | 网络 [mit6.s081] 笔记 Lab9: Mmap | 文 2023-12-24 OS > 系统编程 > Unix/Linux #学习 #笔记 #操作系统 #MIT 6.S081
MIT 6.S081学习笔记(第十章) 〇、前言本文主要完成 MIT 6.S081 实验 net 。开始之前,切换分支: 123$ git fetch$ git checkout net$ make clean Lab: networking(hard)Question requirements Your job is to complete e1000_transmit() and e1000_recv(), both in k 2023-12-24 OS #学习 #笔记 #操作系统 #MIT 6.S081 #文件系统
MIT 6.S081学习笔记(第九章) 〇、前言本文主要完成 MIT 6.S081 实验 mmap 。开始之前,切换分支: 123$ git fetch$ git checkout mmap$ make clean Lab: mmap (hard)Question requirements The mmap and munmap system calls allow UNIX programs to exert detailed 2023-12-23 OS #学习 #笔记 #操作系统 #MIT 6.S081