Jerish的博客

游戏开发 知乎专栏https://zhuanlan.zhihu.com/c_164452593

《Exploring in UE4》多线程机制详解[原理分析]

目录 一.概述 二."标准"多线程 三.AsyncTask系统 3.1 FQueuedThreadPool线程池 3.2 Asyntask与IQueuedWork 3.3 其他相关技术细节 四.TaskGraph系统 4.1 从Tick函数谈起 4.2 Tas...

2018-09-23 15:02:31

阅读数:583

评论数:2

一张图搞定UE4中代理(delegate,event)的使用

UE4中的代理实现与普通C++的代理实现思路相同,不过特殊处理了UObject继承体系下类成员函数的绑定与执行。由于官方文档没有例子,大家可以参考下面的图片来使用(其实例子大家完全可以到UE源码里面去找,这里算是帮助各位总结了一下) 不过既然是使用UE4,C++代理说完了怎么能少了蓝图代理的...

2017-11-14 09:41:19

阅读数:4258

评论数:0

C++后台面试常见问题与回答(持续更新)

最近觉得自己的基础知识不够牢固,所以在网上找到一些常见的面试问题,自己试着去学习并解答,希望对找工作的朋友有一定的帮助。 由于C++面试涉及的知识非常多,我也是一边复习一边总结,所以这个文档会持续更新下去。有时间还会再每个问题后面添加一些相关书籍与链接等,方便进一步深入学习与理解。 ** ...

2017-10-26 21:48:14

阅读数:5120

评论数:0

字符集详解(一看就懂系列)

http://blog.csdn.net/qq_28098067/article/details/53486032 一、编码历史与区别         一直对字符的各种编码方式懵懵懂懂,什么ANSI UNICODE UTF-8 GB2312 GBK DBCS UCS……是不是看的很...

2017-08-27 11:36:30

阅读数:497

评论数:0

dynamic_cast与一般的强制转换

接触过C语言的同学可能很喜欢使用C风格的强制转换(也就是一般形式的强转)。 (类型)变量 用起来很方便,可以显式的把某些类型转换成我们想要的类型,比如(int*)字符。这样的使用对常见的内置类型可谓是屡试不爽,但是对于C++中的对象用起来却是危机四伏。所以dynamic_cast应运而生。 我们很...

2017-04-04 12:13:16

阅读数:6984

评论数:0

UE4反射系统简析(含实例过程分析)

一、UE4中的反射系统 1.简述: 1.1 什么是UE4反射 在UE4里面,你无时无刻都会看到类似UFUNCTION()这样的宏。官方文档告诉你,只要在一个函数的前面加上这个宏,然后在括号里面加上BlueprintCallable就可以在编辑器里面调用了。按照他的指示,我们就能让我们的函数实现各种...

2016-10-23 15:44:25

阅读数:10115

评论数:0

Introduction to C++ Programming in UE4——UE4官方文档翻译与理解(二)

虚幻4的编程以C++为主,虚幻引擎根据自自身特点重写了很多数据类型与结构,而且里面用到了很多新的C++标准内容以及自有的特性。研究UE4能同时提升我们对C++的理解以及对虚幻引擎的理解~ 在我写第一部分的时候还没有官方的汉语翻译,所以第一部分是由本人自己翻译的。既然现在已经有了官方翻译,那我就整理...

2016-08-28 13:40:19

阅读数:1444

评论数:0

Introduction to C++ Programming in UE4——UE4官方文档翻译与理解(一)

UE4这篇官方文档大体上讲解了UE4本身的诸多特性以及如何编写基本的C++代码,对理解UE4的编程基础内容非常有帮助,还是因为没有对于的汉语翻译。所以,这里我把这篇文档翻译出来,之后还会简洁的对其进行必要的总结。由于内容比较多,会分两个部分进行编写,持续更新~ Unreal C++ i...

2016-05-10 11:22:01

阅读数:3517

评论数:0

63在模块的接口中使用具有良好可移植性的类型——C++编程规范解析

有时,即使是C++内置类型,也可能和我们所调用模块的基本类型占用的内存大小有所区别,比如int占几个字节。 所以,我们对程序的类型抽象的越高,在功能上使用起来可能就越安全和方便,但是对使用的范围和限制可能也就越多,这是我们要对自己工程项目所要衡量的东西。

2016-03-13 14:47:21

阅读数:712

评论数:0

stdafx有什么用(包含相关问题分析)

使用过Visual Studio,VC++的朋友对stdafx.h这个文件一定非常熟悉。我们新建工程的时候他就自动出现了,并且在每个.cpp文件的最前面都有一个#include "stdafx.h"。这个文件一定有他的作用,然而我们也经常会因为他遇到各式各样的问题,所以这里给大...

2016-03-07 20:25:10

阅读数:6482

评论数:0

62条 不要允许异常跨越模块边界传播——C++编程规范解析

最近在看C++编程规范,第一遍时完全是一头雾水,然后就在本子上记了好多问题,后来稍微理解了些,就把自己的理解写出来和大家分享一下 1.C++异常处理没用普遍通用的二进制标准说明了什么问题? 编译器编译生成的obj是二进制文件,然而不同系统不同编译器生成同一份C++代码的二进制文件是不同的,换句...

2016-03-05 18:07:55

阅读数:814

评论数:0

C++异常基础

最近在看C++编程规范和C++primer,遇到了有关异常的一些内容,在此简单总结一下,以后可能会继续补充 1.异常的意义是什么?为什么要进行异常处理? 异常机制允许我们在运行时就对出现的问题进行及时处理,假如我们的程序运行过程出现错误,我们又不想让程序直接挂掉,我们就可以对可能出现的错误提前...

2016-03-05 14:51:09

阅读数:528

评论数:0

模板非类型形参的详细阐述

关于模板的非类型形参,网上有很多内容,C++primer只有大概一页的阐述,但是都不够清晰详细。下面我尽可能从自己的角度去给大家描述一下非类型形参的相关细节。如果想进一步理解非类型形参以及模板内容可以阅读C++template这本书,在4.1节,8.3.3节,13.2节都有相关解释。 这里要强调...

2016-03-02 15:34:58

阅读数:4274

评论数:0

直接初始化与拷贝(复制)初始化

认识这两种初始化有助于我们加深对语言的理解,可以更好的优化代码~ 我们常见的几种初始化的形式: string  str1 = "first";    //拷贝初始化 string  str2(10,'a');     //直接初始化 string  str3(str2); ...

2016-01-19 20:57:45

阅读数:2956

评论数:8

进一步理解C++构造与析构

在之前的浅析C++智能指针一文中,我们提到过,在C语言中我们用malloc和free来申请和释放内存。而在C++语言中,我们常用new与delete来申请和释放内存。 我们要知道,new,delete与malloc,free是有区别的,new一个对象时,我们不仅申请了内存同时构造了对象,delet...

2016-01-19 20:53:55

阅读数:1132

评论数:0

求C++数组长度问题

今天写代码的时候突然发现个问题,有类似这样一个函数,数组作为参数 void FormHead::ShowNum(intnumOfBoth[]) {          if(curMapId== 3)          {            FlashValueconditionNum...

2016-01-19 20:53:10

阅读数:1684

评论数:0

浅析C++智能指针

在C语言中我们用malloc和free来申请和释放内存。而在C++语言中,我们常用new与delete来申请和释放内存。 那么无论是C还是C++我们都很容易在动态内存的管理上出现问题, 1.忘记delete内存,导致内存泄露。如果在变量当前的作用域没有及时释放内存,那么之后就再也没有机会了,而且...

2016-01-10 18:02:32

阅读数:734

评论数:0

理解C++的链接:C++内链接与外链接的意义

首先理解什么是编译单元? 什么是内部链接? 什么是外部链接? 定义这样的内链接与外链接有什么意义? 为什么不要在头文件中定义具有外部链接的实体? 在头文件中定义具有内部链接的实体有什么劣势?

2015-12-29 22:31:40

阅读数:2355

评论数:0

lib与dll的关系(详解静态链接库和动态链接库)

最近接触到的游戏会有很多的dll和lib文件,之前关于动态链接库和静态链接库一直很不理解,最近发现了一篇很好的文章,非常清晰的讲解了dll与lib的关系,这里拿出来给大家分享下。 原文链接: http://blog.163.com/zhengjiu_520/blog/static/35...

2015-12-29 22:17:32

阅读数:4006

评论数:0

char * itoa(int, char *, int); 第二个参数明明是char*,为什么却又不能是“char*”?

char * itoa(int originNum, char * targetStr, int standard); 第二个参数明明是char*,为什么不能是“char*”??? 这里来简单介绍一下字符串数组与字符串指针的区别~

2015-12-26 19:18:29

阅读数:1664

评论数:0

提示
确定要删除当前文章?
取消 删除