
C++
文章平均质量分 91
独立游戏开发指南
这个作者很懒,什么都没留下…
展开
-
C++ 多态的实现及原理
C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数; 1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。 2:存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。 3:多态性是一个接口多种实现,是面向对象的核心,分为类的多...原创 2021-05-19 16:18:29 · 750 阅读 · 0 评论 -
C++对象模型
何为C++对象模型?C++对象模型可以概括为以下2部分:1、语言中直接支持面向对象程序设计的部分;2、对于各种支持的底层实现机制。语言中直接支持面向对象程序设计的部分,如构造函数、析构函数、虚函数、继承(单继承、多继承、虚继承)、多态等等。本文重点介绍底层实现机制。在C语言中,“数据”和“处理数据的操作(函数)”是分开声明的,也就是说,语言本身并没有支持“数据和函数”之间的关联...转载 2019-11-27 18:23:33 · 132 阅读 · 0 评论 -
C++ wstring string char* wchar_t相互转换
1. char*->string(1)直接转换const char* nodename;string temp = nodename;string temp2(nodename);2. wchar_t*->wstring(1)直接转换const wchar_t* nodename;wstring temp = nodename;wstring temp2...转载 2018-10-18 10:20:20 · 6429 阅读 · 0 评论 -
C++ 处理非空的错误指针
对于非空的错误指针导致的崩溃,不能用常用的try{}catch{}进行处理,在C++中,这种方法只能处理异常,但对于空指针、除以0这些操作,不能算是异常,而是错误,是不能捕获并处理的;非空的错误指针,通常是由试图访问了非法的内存或者写入了非法的内存导致的,比如说:访问损坏的dump文件里面的内容,会导致读取内存或模块列表出错;这时可选择使用Windows API函数来进行处理;判断调用进程是否拥有...原创 2018-05-25 11:36:47 · 1585 阅读 · 0 评论 -
C++中string.find()函数与string::npos
查找字符串a是否包含子串b,不是用strA.find(strB) > 0而是strA.find(strB) != string:nposstring::size_type pos = strA.find(strB);if(pos != string::npos){}-------------------------------------------int idx = st转载 2017-09-06 15:30:17 · 341 阅读 · 0 评论 -
vs2010断点调试技巧分享
本文主要介绍了vs2010断点调试的一些技巧,大家参考使用吧~设置断点:在如下图中的红色圆点处设置断点,红色圆点表示已经在这行设置断点。快捷键F9。启动调试:按F5或者点击左边红框中的按钮。右边框是开始执行(不调试)Ctrl+F5。调试工具栏:下面是工具栏中对应的名称和快捷键。在调试过程中F5是执行到下一个断点。F11是逐语句,在执行到下图中的断点时,按转载 2017-08-24 16:23:13 · 559 阅读 · 0 评论 -
11个高效的VS调试技巧
介绍调试是软件开发周期中的一个很重要的部分,有时很有挑战性,有时候则让程序员迷惑,有时候让程序员发疯,但是。可以肯定的是,对于任何不是太那个微不足道的程序来说,调试是不可避免的。近年来,调试工具的发展已经使得很多调试任务简单省时了。 本文总结了十个调试技巧,当你使用VS的时候可以节省你很多时间。1.悬停鼠标查看表达式调试有时候很有挑战性,当你步入一个转载 2017-08-24 16:21:09 · 309 阅读 · 0 评论 -
VS C++编译时间过长的注意点
对于一个做端游的人来说,一般工程都是比较庞大的。对于编译链接花的时间有时候可以去做着喝几杯咖啡的时间浪费真是无语,还赶上有时候赶版本,真心很急…….虽然已经使用了必不可缺的IncrediBuild。 关于《C++ codingStandards》以下几条整改原则:关于include的原则最多,因为包含头文件相当于将代码复制到本文件来编译,而头文件又经常是用来被别人包含的,所以工程文件多转载 2017-08-23 17:56:39 · 2129 阅读 · 0 评论 -
回调的原理、应用
什么是回调 什么回调?维基百科是这样解释的:回调是一段可执行的代码通过参数传递给别一段代码,以期望在一个合适的时间调用这个参数(可执行的代码)。 参考:In computer programming, a callback is a piece of executable code that is passed as an argument to other code,转载 2017-07-17 16:29:57 · 285 阅读 · 0 评论 -
C++ 多态的简单示例
面向对象的三大特性是封装,继承和多态,本文主要介绍C++里的多态特性在编译器把函数或模板连接生产执行代码的过程中,有两种联编方式,一种是静态联编,另外一种是动态联编,静态联编是在编译阶段就把函数连接起来,就可以确定调用哪个函数或者模板,而动态联编是指在程序运行时才能确定函数和实现的连接,才能确定调用哪个函数根据联编的方式我可以把多态(函数多种形态)分成两种,静态多态和动态多态,网上转载 2017-07-17 15:27:33 · 1397 阅读 · 0 评论 -
C++三大特性之多态
原文地址:https://qunxinghu.github.io/2016/09/08/C++%20%E4%B8%89%E5%A4%A7%E7%89%B9%E6%80%A7%E4%B9%8B%E5%A4%9A%E6%80%81/概念多态(Polymorphisn)多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值转载 2017-07-17 11:25:07 · 290 阅读 · 0 评论 -
C++虚基类的作用
虚基类的作用 当一个基类被声明为虚基类后,即使它成为了多继承链路上的公共基类,最后的派生类中也只有它的一个备份。例如:class CBase { };class CDerive1:virtual public CBase{ };class CDerive2:virtual public CBase{ };class CDerive12:public CDerive1转载 2017-07-17 11:22:06 · 431 阅读 · 0 评论 -
C++三大特性之继承
原文地址:https://qunxinghu.github.io/2016/09/12/C++%20%E4%B8%89%E5%A4%A7%E7%89%B9%E6%80%A7%E4%B9%8B%E7%BB%A7%E6%89%BF/基本概念继承: 类的继承,就是新的类从已有类那里得到已有的特性。原有的类称为基类或父类,产生的新类称为派生类或子类。基本语法派生类的声明转载 2017-07-17 11:18:26 · 237 阅读 · 0 评论 -
C++三大特性之封装
原文地址:https://qunxinghu.github.io/2016/09/12/C++%20%E4%B8%89%E5%A4%A7%E7%89%B9%E6%80%A7%E4%B9%8B%E5%B0%81%E8%A3%85/什么是封装?封装: 封装可以隐藏实现细节,使得代码模块化封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。在面向对象编程上可理解为:转载 2017-07-17 11:15:07 · 288 阅读 · 0 评论 -
C++多线程编程(入门实例)
多线程在编程中有相当重要的地位,我们在实际开发时或者找工作面试时总能遇到多线程的问题,对多线程的理解程度从一个侧面反映了程序员的编程水平。 其实C++语言本身并没有提供多线程机制(当然目前C++ 11新特性中,已经可以使用std::thread来创建线程了,因为还没有系统地了解过,所以这里不提了。),但Windows系统为我们提供了相关API,我们可以使用他们来进行多线程编程。创转载 2017-07-17 10:29:57 · 513 阅读 · 0 评论 -
C++中为什么要用指针,而不直接使用对象?
问题描述我刚从 Java 转到使用 C++ 进行面向对象开发,我发现一个很让我非常困惑的问题:C++ 中经常出现使用对象指针,而不是直接使用对象本身的代码,比如下面这个例子:C++1Object *myObject = new Object;而不是使用:C++转载 2017-07-14 14:30:51 · 7797 阅读 · 2 评论