3.4k 3 分钟

以下为个人学习笔记整理。参考书籍《C++ Primer Plus》 # 对象和类 # 抽象和类 # 类型是什么🤔 类型的三个特性: 决定了数据对象所需的内存数量。 决定了如何解释内存内的数据(long 和 float 在内存中占用位数相同,但转化为的值不相同。) 决定了数据对象能够执行的操作和操作的内容。 # C++ 中的类 类的规范由两个部分组成: 类声明:描述类的数据成员,描述类的成员函数(接口)。 类方法定义:描述类的成员函数实现。 // 头文件class Stock{private: char company[30]; int shares; double...
7k 6 分钟

以下为个人学习笔记整理。参考书籍《C++ Primer Plus》 # 内存模型和名称空间 # 单独编译 将程序进行合理的拆分,可以降低代码的维护成本: 头文件:包含结构体声明和使用这些结构体的函数原型。 函数原型。(函数定义不要放在头文件,如果同一个程序的多个源文件使用了函数定义,会导致出错) 使用 #define 或 const 定义的符号常量。 结构体声明。 类声明。 模板声明。 内联函数。 名称空间内上述内容的定义。 源代码文件:包含与结构体有关的函数的代码,函数的定义,名称空间内函数的定义。 源代码文件:包含调用与结构体相关函数的代码,调用名称空间内函数的代码。 #...
5.1k 5 分钟

以下为个人学习笔记整理。参考书籍《C++ Primer Plus》 # 函数介绍 # C++ 内联函数 内联函数更像是把函数贴入到调用的位置,这样可以提高函数跳转所带来的开销。 声明内联函数: 在函数声明前加上关键字 inline ; 在函数定义前加上关键之 inline ; inline double square(double x){return x * x; }int main(){ double a = square(1.5); return...
536 1 分钟

以下为个人学习笔记整理。参考书籍《C++ Primer Plus》 # 函数指针 函数地址:「函数名」就是函数的地址 声明函数指针:声明函数指针,必须能够体现函数的一些特性,例如参数和返回值。 double func(int); // 函数声明double (*p_f)(int); // 函数指针声明# 有意思的声明😁 两种声明方法最终的结果一致,即: p_f == (*pf) void test_p_func(void p_f(int)) { p_f(1);}void test_p_func(void (*p_f)(int))...
664 1 分钟

以下为个人学习笔记整理。参考书籍《C++ Primer Plus》 # 文件输入输出 # 文件输入 #include<fstream>// 写文件std::ofstream write_file;// 文件不存在会创建新的。write_file.open("iof_file.txt");write_file << "hello world" << endl << "save the...
562 1 分钟

以下为个人学习笔记整理。参考书籍《C++ Primer Plus》 # 循环和关系表达式 # for 循环 for(int i = 0; i < 100; i++){ // do something...} 基于范围的 for 循环 int lst[100] = {1,2,3,4,5,6,7,8,9,0};// 变量元素for (int x: lst){ cout << x <<endl; // do...
621 1 分钟

以下为个人学习笔记整理。参考书籍《C++ Primer Plus》 # 分支语句和逻辑表达式 # if 语句 int i = 1;if (i > 0){ // do something...}else if (i == 0){ // do something...}else{ // do something...}# 逻辑表达式 或: || 与: && 非: ! # 字符函数库 cctype ispunct(char)...
2.4k 2 分钟

以下为个人学习笔记整理。参考书籍《C++ Primer Plus》 # 复合类型 # 指针、数组、指针算术 # 指针 申明: typeName * pointerName 。 赋值: double* pn,pa;char* pc;double bubble = 3.2;pn = &bubble; // 指向 bubble 的地址。pc = new char; // 分配一个 char 大小的地址空间给 pcpa = new double[30]; // 分配 30 个 double 大小的地址空间给 pa 取值: *pointerName...
4k 4 分钟

以下为个人学习笔记整理,涉及坐标内容统一用右手坐标系,课程官网。 # Animation # Single Particle Simulation 先从单个的粒子开始,假设物体的运动由一个速度矢量场决定,不同位置不同时间粒子会获得不同方向不同大小的速度 v(x,t)v(x,t)v(x,t) 。 # Ordinary Differential Equation(ODE) 定义一个一阶的常微分方程(ODE),用于计算物体的速度 vvv 。 dxdt=x˙=v(x,t)\frac{dx}{dt} = \dot x = v(x,t) dtdx​=x˙=v(x,t) #...
4.1k 4 分钟

以下为个人学习笔记整理,涉及坐标内容统一用右手坐标系,课程官网。 # Animation # Keyframe Animation 给定了一个动画内几个比较关键的画面,从而推导出整个动画。 # Keyframe Interpolation 可以理解为,每个关键帧上有多个关键点,同一关键点在不同关键字的位置的插值,就能得到中间帧的关键点。 # Keyframe Interpolation of Each Parameter 因此,如何进行插值就是关键帧动画实现的核心。 Linear interpolation:效果往往不是那么理想。 Recall splines for smooth...