2025-07-20
C++
00

2.类与对象

第二章 类与对象基础

面向对象思想

过程论认为:数据和逻辑是分离的、独立的,程序世界本质是过程,数据作为过程处理对象,逻辑作为过程的形式定义,世界就是各个过程不断进行的总体。

对象论认为:数据和逻辑不是分离的,而是相互依存的。相关的数据和逻辑形成个体,这些个体叫做对象,世界就是由一个个对象组成的。对象具有相对独立性,对外提供一定的服务。所谓世界的演进,是在某个“初始作用力”作用下,对象间通过相互调用而完成的交互;在没有初始作用力下,对象保持静止。这些交互并不是完全预定义的,不一定有严格的因果关系,对象间交互是“偶然的”,对象间联系是“暂时的”。世界就是由各色对象组成,然后在初始作用力下,对象间的交互完成了世界的演进。过程论和对象论不是一种你死我活的绝对对立,而是一种辩证统一的对立,两者相互渗透、在一定情况下可以相互转化,是一种“你中有我、我中有你”的对立。如果将对象论中的所有交互提取出来而撇开对象,就变成了过程论,而如果对过程论中的数据和逻辑分类封装并建立交互关系,就变成了对象论。

过程论相对确定,有利于明晰演进的方向,但当事物过于庞大繁杂,将很难理清思路。因为过程繁多、过程中又有子过程,容易将整个世界看成一个纷繁交错的过程网,让人无法看清。对象论相对不确定,但是因为以对象为基本元素,即使很庞大的事物,也可以很好地分离关注,在研究一个对象的交互时,只需要关系与其相关的少数几个对象,不用总是关注整个流程和世界,对象论更有助于分析规模较大的事物。但是,对象论也有困难。例如,如何划分对象才合理?对于同一个驱动力,为什么不同情况下参与对象和交互流程不一样?如何确定?其实,这些困难也正是面向对象技术中的困难。

类的定义

C++用类来描述对象,类是对现实世界中相似事物的抽象,比如同是“双轮车”的摩托车和自行车,有共同点,也有许多不同点。“车”类是对摩托车、自行车、汽车等相同点的提取与抽象。

2025-07-20
C++
00

1.C++与C

第一章 C++与C

本章主要讲解C++相较于C一些独有的比较重要的知识点。

C++源文件后缀名.cc/.cpp,头文件后缀名.hh/.hpp

安装g++命令:sudo apt install g++

编译命令 g++ 文件名.cc/.cpp [-o name]

可以按如下方式设置代码预设片段,减少一点重复性的工作

首先从我们最常见到C++的hello,world代码入手,来认识一下C++语言

cpp
展开代码
#include <iostream>using namespace std;int main(int argc, char * argv[]){ cout << "hello,world" << endl; return 0;}

可能会产生这样的一些疑问

(1)iostream是C++标准库头文件,为什么没有后缀?

—— 模板阶段再作讲解

(2)using namespace std是什么含义?

—— 命名空间的使用

(3) cout << “hello,world” << endl; 实现了输出hello,world的功能,如何理解这行代码?

—— C++输出流的使用

2025-07-20
C++
00

0.C++发展概述

C++阶段介绍

C++基础部分

  • C++与C —— 介绍C++基本语法,与C的写法做对比**(基础)**
  • 类与对象 —— 面向对象思想的介绍,类的基本使用**(重点)**
  • C++输入输出流 —— C++基本输入输出方式 (基础)
  • 日志系统 —— log4cpp工具的使用(后续项目会用,对类与对象基础的综合考察)
  • 运算符重载 —— C++特色语法,提供强大且灵活的特性 (重点)
  • 关联式容器 —— STL容器的使用 (很常用的标准库工具)
  • 继承 —— 不涉及多态的继承,面向对象的基本特征之一 (简单)
  • 多态 —— 面向对象的基本特征之一,虚函数机制、虚拟继承、内存布局 (重难点)
  • 模板 —— 模板的简单使用 (深入研究很难,本课程中能够进行简单使用,能够看懂基本的模板代码即可)
  • 移动语义与资源管理 —— 学习C++对于右值的处理方式,学习智能指针的使用和注意事项**(常用且常考,重点)**

C++提升部分

  • 标准模板库 ( STL) 对常见的数据结构和算法的封装,以及相关容器知识 —— 业务代码基本必用,面试基本必考
  • 面向对象设计(OOD)
  • 项目部分 —— 搜索引擎项目(线程池实现、Reactor网络模型实现)

框架

  • Qt开发框架
2025-07-19
教程合集
00

PicGo设置教程

Github设置

一、准备工作

  1. 注册 GitHub 账号
    • 访问 GitHub官网,注册账号(需未使用的邮箱)。
  2. 创建图床仓库
    • 登录后点击右上角 + → New repository,输入仓库名(如 pic-bed),选择 Public(必须公开),勾选 Add a README file

二、生成 GitHub Token

  1. 进入 Token 设置页
    • 点击头像 → Settings → Developer settings → Personal access tokens → Generate new token
  2. 配置 Token
    • Note:填写描述(如 PicGo-Token)。
    • Expiration:建议选择 No expiration(永不过期)。
    • 权限:勾选 repo(完全控制仓库)。
  3. 保存 Token
    • 生成后立即复制并保存(页面关闭后无法再次查看)。

三、安装与配置 PicGo

  1. 下载 PicGo
    • 官方下载:GitHub Releases(支持 Windows/macOS/Linux)。
    • 国内镜像(如山东大学镜像站)可加速下载。
  2. 配置 GitHub 图床
    • 打开 PicGo → 图床设置 → GitHub图床,填写以下信息:
      • 仓库名用户名/仓库名(如 daowuya399/pictures)。
      • 分支名main 或 master(与仓库实际分支一致)。
      • Token:粘贴生成的 GitHub Token。
      • 存储路径(可选):如 img/(为空则上传至根目录)。
      • 自定义域名(推荐):https://cdn.jsdelivr.net/gh/用户名/仓库名@分支(通过 jsDelivr CDN 加速)。
    • 点击 设为默认图床 并保存。

2025-07-19
Database
00

Redis

Day01

一、Redis的基本概念

1、关系型数据库与非关系型数据库

关系型数据库:MySQL就是典型的关系型数据库,使用表结构。

非关系型数据库:redis是典型的非关系型数据库,存放数据的时候,使用键值对的形式。

2、非关系型数据库的分类

基于键值对 key-value类型:Redis,memcached 列存储数据库 Column-oriented Graph:HBase 图形数据库 Graphs based:Neo4j 文档型数据库: MongoDB,MongoDB是一个基于分布式文件存储的数据库,主要用来处理大量的文档。

3、redis的基本概念

远程字典服务器。使用C语言进行编写的,开源的,性能比较高。主要用作数据库、缓存和消息中间件,是基于内存运行的,并且支持持久化

redis中文官网:http://www.redis.cn/( redis英文官网:https://redis.io/