C++语言学习
衣带渐宽人憔悴
学习笔记
展开
-
C++之——类模板与函数模板用法
模板是一种对类型进行参数化的工具;通常有两种形式:函数模板和类模板;函数模板针对仅参数类型不同的函数;类模板针对仅数据成员和成员函数类型不同的类。使用模板的目的就是能够让程序员编写与类型无关的代码。比如编写了一个交换两个整型int 类型的swap函数,这个函数就只能实现int 型,对double,字符这些类型无法实现,要实现这些类型的交换就要重新编写另一个swap函数。使用模板的目...原创 2018-07-13 10:22:41 · 3907 阅读 · 1 评论 -
Traceroute(路由追踪)的原理及实现
Traceroute(路由追踪)的原理及实现(1)相应的协议和原理IP协议:IP协议是TCP/IP协议族中最核心的部分,它的作用是在两台主机之间传输数据,所有上层协议的数据(HTTP、TCP、UDP等)都会被封装在一个个的IP数据包中被发送到网络上。ICMP: ICMP全称为互联网控制报文协议,它常用于传递错误信息,ICMP协议是IP层的一部分,它的报文也是通过IP数据包来传输的。...原创 2018-12-03 09:16:55 · 10931 阅读 · 13 评论 -
C++之——模板方法
#include <iostream>using namespace std;class Shape {//抽象类public: void begin() { cout << "绘图开始" << endl; } void end() { cout << "绘图结束" << endl; } virtual void d原创 2018-12-03 09:14:33 · 256 阅读 · 0 评论 -
Bezier曲线原理及其代码实现
Bezier曲线原理及实现代码(c++) 一、原理: 贝塞尔曲线于1962年,由法国工程师皮埃尔?贝塞尔(Pierre B?zier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由 Paul de Casteljau 于1959年运用de Casteljau 算法开发,以稳定数值的方法求出贝塞尔曲线。线性贝塞尔曲线给定点 P0、P1,线...转载 2018-12-05 15:49:32 · 15007 阅读 · 0 评论 -
C++之——谨记将基类的析构函数声明为虚函数
#include <iostream>using namespace std;class Base {public: virtual ~Base() { cout << "基类析构" << endl; }};class Derived:public Base {public: Derived() { m_data = new in...原创 2018-12-03 15:45:32 · 352 阅读 · 0 评论 -
C++之——模板类实例化
类模板必须实例化才能作为一个类来声明和定义类对象,类模板实例化成为模板类,同一个类模板不同的实例之间相互独立,如果类模板中有静态成员,则每个模板类分别占用一个静态成员#include<iostream>using namespace std;template<class T,int size=100>class Stack {public: Stack(...原创 2018-12-06 11:30:44 · 8382 阅读 · 0 评论 -
OpenGL3之——着色器
#include <iostream>// GLEW#define GLEW_STATIC#include <GL/glew.h>#pragma comment(lib,"glew32s.lib")// GLFW#include <GLFW/glfw3.h>#pragma comment(lib,"glfw3.lib")#include &...原创 2018-12-19 15:25:35 · 268 阅读 · 0 评论 -
error LNK2026: 模块对于 SAFESEH 映像是不安全的
转自VC错误:http://www.vcerror.com/?p=162错误描述:在使用VS2012编译工程时,提示错误:" error LNK2026: 模块对于 SAFESEH 映像是不安全的"解决方法:1.打开该项目的“属性页”对话框。2.单击“链接器”文件夹。3.单击“命令行”属性页。4.将 /SAFESEH:NO 键入“其他选项”框中,然后点击应用。 ...转载 2018-12-18 11:55:57 · 187 阅读 · 0 评论 -
OpenGL之——多纹理,混合纹理设置渲染
实现下面三种纹理的组合和混合: 一、首先,获取纹理顶点坐标#version 330 corelayout (location = 0) in vec3 aPos;layout (location = 1) in vec2 aTexCoods;out vec2 TexCoods;void main(){ gl_Position = vec4(aPos, 1.0f); Te...原创 2019-01-18 21:43:16 · 8374 阅读 · 1 评论 -
OpenGL之——天空盒
main.cpp// Std. Includes#include <string>#include <algorithm>using namespace std;// GLEW#define GLEW_STATIC#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>// G...原创 2019-01-14 16:55:57 · 1468 阅读 · 1 评论 -
OpenGL之——3D漫游(金字塔)
简易版3D漫游金字塔效果如下: 面重合部分的纹理争夺战: 代码:main.cpp#include <iostream>#include <glad/glad.h>#include <GLFW/glfw3.h>#define STB_IMAGE_IMPLEMENTATION#include <stb_image.h>...原创 2019-01-21 16:57:50 · 1434 阅读 · 0 评论 -
OpenGL之——画不同颜色的三角形(uniform简便方法)
这里有两种渲染方法:(一) 一种是建立两套着色器,两个着色器程序,分别渲染两种颜色;(二) 另一种是简单方法,通过定义在片段着色器中的uniform标志值可以随意切换不同的颜色,用不同的颜色状态来同时渲染不同的图形。 先看笨方法也就是第一种,代码如下:#include <iostream>#include <glad/glad.h>#inclu...原创 2019-01-16 15:40:25 · 3587 阅读 · 0 评论 -
C++之——多态
主函数: #include<iostream>#include<string>#include "Employee.h"using namespace std;int main(int argc, char* argv[]) { cout << "请输入【m:经理,e:工程师,q:结束】:"; Employee *pObj = NULL; ...原创 2018-12-02 11:34:08 · 161 阅读 · 0 评论 -
QT5.4入门之——QT中怎么直接使用自己写的纯C++的类
真是应了那句“温故而知新”,尤其是接触一个新东西不久,每每再回过头来看总会发现一些新东西,记得刚开始接触QT时,感觉它的结构真是不人性化,自己写个C++类还要要注册,继承,还有在构造函数下写东西,总感觉有点乱七八糟的。做为一个不入门的小白,开始的时候妄图直接把自己的纯C++代码粘贴过来运行(粘到了mywidget.cpp中,就是一开始自己定义的那个名字生成的cpp文件中),可是...原创 2018-10-10 17:17:19 · 14456 阅读 · 1 评论 -
VS2017环境下配置OpenGL的简单方法(glut,glew,freeglut,gltools)
写在前面:最近要用到OpenGL,光是在VS2015下配置就费了很大的劲,现在将我的成果直接贡献给大家,希望能为需要在VS2015下配置OpenGL的读者省去一些麻烦。正文:资源地址1:https://pan.baidu.com/s/1yuLgX3p9EDrUweppOSqOIA 提取码:anjc资源地址2:http://down.51cto.com/data/2300181...转载 2018-10-04 12:28:12 · 4190 阅读 · 5 评论 -
C++之——变量的存储类别及static、register、extern用法
一、变量属性1.作用域:从空间角度来分析的,分为全局变量和局部变量。2.存储期:也称生命期,指变量在内存中的存在时期,是从变量在内存中的存在时间来分析的,存储期可分为静态存储期和动态存储期,这是由变量的动态存储方式和静态存储方式决定的。 数据分别存放在静态存储区和动态存储区中,全局变量全部存放在静态存储区中,在程序开始执行时给全局变量分配存储单元,程序执行完毕就释放这些空...原创 2018-09-11 19:51:42 · 792 阅读 · 0 评论 -
纯C++版2048小游戏(VS2017)
#include <iostream>#include <conio.h>#include <Windows.h>#include <iomanip>#include <cmath>using namespace std;int cells[4][4] = { 2,0,0,0,0,32,0,0,0,4,0,0,0,0,20...原创 2018-09-15 22:06:32 · 3662 阅读 · 3 评论 -
C++ 推箱子小游戏(VS2017)
#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<Windows.h>#include<amp_graphics.h>int row, col;int k = 0;int dest[8][9] = { 0 };int map[2][8][9] = {...翻译 2018-09-16 08:37:31 · 4050 阅读 · 11 评论 -
QT5.4下载地址
http://download.qt.io/archive/qt/5.4/5.4.0/原创 2018-09-16 19:17:15 · 3626 阅读 · 0 评论 -
C++之——#include <iomanip>头文件
iomanip在c++程序里面经常见到下面的头文件#include <iomanip>,io代表输入输出,manip是manipulator(操纵器)的缩写(在c++上只能通过输入缩写才有效。)作用主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制头文件,就像C里面的格式...转载 2018-09-12 18:48:41 · 1648 阅读 · 0 评论 -
C++之——枚举类 enum class var_name{string1,string2,string3}
#include <iostream>using namespace std;int main() { enum class Case { case1, case2, case3 }; Case a = Case::case1; a = Case::case2; //a = Case::case3; if (a == Case::case1) { cout <...原创 2018-09-17 08:48:49 · 1381 阅读 · 0 评论 -
C++之—— STL快速入门
在数月之前的机试中第一次体验到STL的威力,因为自己本来一直在用C语言做开发,很多数据结构都是自己造的,比如链表、队列等,第一次接触C++ STL后发现这些数据结构都已经给我提供好了,我直接拿去调用就好了,真是超级方便。最近的项目中也遇到了STL一些容器,所以现在自己好好总结一下STL中一些最常用的容器的使用方法,方便自己日后查阅。C++ STL中最基本以及最常用的类或容器无非就是以下几个:...转载 2018-09-12 21:57:24 · 144 阅读 · 0 评论 -
纯C++贪吃蛇低配版小游戏(VS2017)
#include <iostream>#include <conio.h>#include <Windows.h>#include <iomanip>#include <cmath>#include <vector>using namespace std;//定义全局变量int length = 4;in...原创 2018-09-18 17:34:36 · 3765 阅读 · 1 评论 -
C++ 比较完美的俄罗斯方块(VS2017)
刚刚运行了别人家的代码,惊艳到了,瞬间感觉自己之前写的小游戏的黑框框输出框low到爆,必须好好研究一下,哎 别人家的门牌号:https://blog.csdn.net/qq_35781950/article/details/71105627#inclu...转载 2018-09-18 19:30:19 · 7364 阅读 · 11 评论 -
C++之——指针数组与指向指针的指针
对"BASIC","FORTRAN","C++","Pascal","COBOL"按字母顺序由小到大排序#include <iostream>#include <string>using namespace std;int main() { void sort(const char *name[], int n); void print原创 2018-09-13 16:27:06 · 615 阅读 · 0 评论 -
基于QT5.4的C++贪吃蛇小游戏
游戏核心代码:void myWidget::timerEvent(QTimerEvent *e){//定时器 if(e->timerId() == timerId && gamePause){ if(direction == s_right){ goRight(); }else if(directio...原创 2018-10-02 11:18:16 · 2055 阅读 · 0 评论 -
OpenGL之——模板检测 stencilTest
LearnOpenGL上用模板检测做的一个选定3D物体的Demo(即选取特定物体的轮廓) 核心代码:#include <iostream>#include <string>#include <glad/glad.h>#include <GLFW/glfw3.h>#define STB_IMAGE_IMPLEMEN...原创 2019-02-23 21:49:40 · 549 阅读 · 0 评论