Cpp Operator Overloading

1 概述

C++Java 最不同的地方在我看来可能就是操作符重载了,Java 对于自定义类的加减法操作可能需要通过使用自定义的 add()sub() 方法来实现,而在 C++ 中,可以通过简单的操作符重载来赋予相同的符号以不同的意义(操作符重载也是一种函数重载)。这是 C++ 这个语言给予开发者的一个极大的权利与特性,让开发者能够根据自己的设想来实现不同的操作符,但是其也有一定的坏处,是否能够很好地使用这种特性考验的还是开发者的水平。

阅读更多
TCP/IP Model

概述

OSI 模型只是一个参考/逻辑模型。它旨在通过将通信过程划分为更小和更简单的组件来描述通信系统的功能。但是当我们谈到 TCP/IP 模型时,它是由美国国防部 (DoD) 在 1960 年代设计和开发的,并且基于标准协议。它代表传输控制协议/互联网协议。TCP/IP模型仅仅包括四层:

  1. Application Layer(应用层)
  2. Transport Layer(传输层)
  3. Internet Layer(网络层)
  4. Network Access Layer(网络接入层)
阅读更多
Design Pattern (4)

5 中介者模式 Mediator Pattern

5.1 概述

网状结构的软件系统:多对多联系将导致系统非常复杂,1几乎每个对象都需要与其他对象发生相互作用,而这种相互作用表现为一个对象与另一个对象的直接耦合,这将导致一个过度耦合的系统。

阅读更多
Database Management Review (4)

27 并发控制

事务并发执行带来的问题:

  1. 会产生多个事务同时存取同一数据的情况
  2. 可能会存取和存储不正确的数据,破坏事务隔离性和数据库的一致性
阅读更多
Cpp Review

记载学习cpp的过程中一些比较容易遗忘和比较特殊的点(相比Java)

Const in Cpp

const int* p1; // 不能改变指针指向的地址的值
int* const p2; // 不能改变指针指向的地址
class Entity {
private:
int m_x, m_y;
public:
// const代表该函数不会改变任何类的成员变量
int GetX() const
{
return m_x;
}
}
阅读更多
Cpp STL Learning

1 STL简介

img

阅读更多
Database Management Review (3)

数据库设计概述

数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理需求和数据操作要求。

  • 信息管理要求:在数据库中应该存储和管理哪些数据对象。
  • 数据操作要求:对数据对象需要进行哪些操作,如查询、增、删、改、统计等操作
阅读更多
Database Management Review (2)

8 SQL概述

8.1 什么是SQL

  • SQL(Structured Query Language)结构化查询语言,是关系数据库的标准语言

  • SQL是一个通用的、功能极强的关系数据库语言

    • 综合统一
    • 高度非过程化
    • 面向集合的操作方式
    • 以同一种语法结构提供两种使用方法
    • 语言简洁,易学易用

注意,SQL只是一种规范性的语言,但是在不同的数据库管理系统中,语法可能会有所不同,比如在MySQL中的语法和在Oracle中的语法可能就有所不同。

阅读更多
Database Management Review (1)

1 计算、数据与数据管理

1.1 数据库的4个基本概念

数据、数据库、数据库管理系统和数据库系统是与数据库技术密切相关的4个基本概念。

阅读更多
Design Pattern (3)

行为型模式(Behavioral Pattern)关注系统中对象之间的交互,研究系统在运行时对象之间的相互通信与协作,进一步明确对象的职责。

行为型模式:不仅仅关注类和对象本身,还重点关注他们之间的相互作用职责划分

  • 类行为型模式:使用继承关系在及各类之间分配行为,主要通过多态等方式来分配父类与子类之间的职责
  • 对象行为型模式:使用对象的关联关系来分配职责,主要通过对象关联等方式来分配两个或多个类的职责
阅读更多