摘要:
本章内容: 重用哲学:为什么要设计可重用代码? 如何设计可重用代码? 如何使用抽象? 创建可重用代码的三大策略 设计可用接口的六大策略 如何权衡通用性及使用的方便性 (在第二章中介绍了重用的设计主题,本章以第三章介绍的面向对象设计原理为基础,讨论重用的另一方面:设计可重用代码) 4.1 重用哲学 代 阅读全文
摘要:
本章内容: 什么是面向对象的程序设计 如何定义不同对象之间的关系 抽象的重要性以及如何在设计中使用抽象 (面向对象的程序设计不同于面向过程,本章将讨论对象之间的不同关系,包括创建面向对象程序时会遇到的问题,抽象原则如何与对象联系起来) 3.1 过程化的思考方式 过程化语言(如C)将代码分割为小块,每 阅读全文
摘要:
一. 位运算 符号 运算 & 与 | 或 ~ 非 ^ 异或 >> 右移 << 左移 常用操作: 求x的第k位数字 x >> k & 1 lowbit(x) = x & -x,返回x的最后一位1 二. 常用库函数 2.1 reverse翻转 //翻转一个vector: reverse(a.begin( 阅读全文
摘要:
一. #include <vector> vector是变长数组,支持随机访问,不支持在任意位置 O(1)O(1) 插入。为了保证效率,元素的增删一般应该在末尾进行 1.1 声明 #include <vector> // 头文件 vector<int> a; // 相当于一个长度动态变化的int数组 阅读全文
摘要:
一. 类与结构体 类的定义: class Person { private: int age, height; double money; string books[100]; public: string name; void say() { cout << "I'm " << name << e 阅读全文
摘要:
一. 函数基础 一个典型的函数定义包括以下部分: 返回类型 函数名 由0个或多个形参组成的列表 函数体 1.1 编写函数 //编写一个求阶乘的程序: int fact(int val) { int ret = 1; while (val > 1) ret *= val -- ; return ret 阅读全文
摘要:
一. 光照系统 UE4 光照系统 UE5 光照系统 二. 直接光及其阴影 光质(灯光的软硬,取决于灯光对对象的包裹程度) 光强 光色(色温) 阴影 未完待续.... 阅读全文
摘要:
一. 字符与整数的联系——ASCII码 每个常用字符都对应一个-128 ~ 127的数字,二者之间可以相互转化(目前负数没有与之对应的字符) 常用ASCII值: 'A' - 'Z' 是 65 ~ 90 'a' - 'z' 是 97 - 122 0 - 9 是 48 - 57 //字符可以参与运算,运 阅读全文
摘要:
一. 一维数组 1.1 数组的定义 //数组的定义方式和变量类似。 #include <iostream> #include <algorithm> using namespace std; int main() { int a[10], b[10]; float f[33]; double d[1 阅读全文
摘要:
一. while 循环 循环版的 if 语句。 if语句是判断一次,如果条件成立,则执行后面的语句 while是每次判断,如果成立,则执行循环体中的语句,否则停止 #include <iostream> using namespace std; int main() { int i = 0; whi 阅读全文